0 0

复杂的java泛型定义,Gene<A, G extends Gene<A, G>>,看不懂啊,求解释?10

Gene是最上层的接口,代码来源于国外的java遗传算法的jentics库。
其中A是类型,关键是 G extends Gene<A, G>,看不懂

public interface Gene<A, G extends Gene<A, G>>
extends Factory<G>, Serializable, ValueType, Verifiable
{

/**
* Return the allel of this gene.
*
* @return the allel of this gene.
*/
public A getAllele();

}
2014年4月03日 15:59

1个答案 按时间排序 按投票排序

0 0

采纳的答案

泛型在是编译期间编译器检查 你写的代码是否符合规范
比如我实现Gene

class GeneImpl<A, G extends Gene<A, G>> implements Gene{


public GeneImpl(A a,G g){

}

@Override
public Object getAllele() {

// TODO Auto-generated method stub
return null;
}

}
在new GeneImpl(xx,yy )是会检查你传入的参数是否合法,

xx是否是A类型;yy是否是Gene或其子类型

2014年4月03日 17:45

相关推荐

    1.java泛型定义.zip

    1.java泛型定义.zip1.java泛型定义.zip1.java泛型定义.zip1.java泛型定义.zip1.java泛型定义.zip1.java泛型定义.zip1.java泛型定义.zip1.java泛型定义.zip1.java泛型定义.zip1.java泛型定义.zip1.java泛型定义.zip1....

    java泛型总结

    - **定义**: 在方法签名中使用泛型,可以通过在方法签名中添加`&lt;T&gt;`来指定泛型类型,其中`T`是类型变量。 - **示例**: ```java public &lt;T, S, U&gt; U f(T t, S s) { // 方法体 } ``` 在这个例子中,`f`方法接受两个...

    Java中List<? extends T>与List<? super T>的区别(值得珍藏)

    在Java中,List&lt;T&gt;、List&lt;? extends T&gt;和List&lt;? super T&gt;是泛型的不同使用形式,它们在类型约束和操作上有所不同。 1. List&lt;? extends T&gt; - `? extends T` 是类型上界的表示,意味着列表中的元素可以是T类型或者是...

    Java泛型编程指南.pdf

    extends Number&gt; numberList = new ArrayList&lt;&gt;(); numberList.add(null); // 只能添加null // 使用下界通配符 List&lt;? super Integer&gt; integerList = new ArrayList&lt;&gt;(); integerList.add(1); // 可以添加Integer...

    Java泛型三篇文章,让你彻底理解泛型(super ,extend等区别)

    &gt; flist = new ArrayList&lt;&gt;(); 这里,List&lt;?&gt; 表示“具有任何类型的列表”,编译器无法确定 List 所持有的类型。 泛型的限制 Java 泛型中有很多限制,例如: * 不能使用基本类型作为泛型类型参数。 * 不能使用...

    关于java基础的泛型的练习

    - 由于历史原因,Java不支持泛型数组的直接创建,如`new MyList&lt;String&gt;[5]`是非法的。 - 可以通过类型安全的工厂方法或运行时转型解决这个问题。 通过以上知识点,我们可以看到Java泛型在编程中的重要性和灵活性...

    java泛型学习ppt

    "Java 泛型学习" Java 泛型是 Java 语言的类型系统的一种扩展,以支持创建可以按类型进行参数化的类。泛型的主要目标是提高 ...* 如果说 ArrayList&lt;Integer&gt; 是一个泛型化的类,那么它是否继承自 ArrayList&lt;Object&gt;?

    Java泛型的用法及T.class的获取过程解析

    abstract public class BaseHibernateEntityDao&lt;T&gt; extends HibernateDaoSupport { private Class&lt;T&gt; entityClass; public BaseHibernateEntityDao() { entityClass =(Class&lt;T&gt;) ((ParameterizedType) getClass()...

    很好的Java泛型的总结

    例如,定义一个List&lt;Integer&gt; intList = new ArrayList&lt;Integer&gt;(),那么在编译期就会检查该List只能添加Integer或int类型的数据,避免了其他类型的数据混入。 类型擦除 ---------- Java泛型在编译期之后就会把...

    java 泛型接口示例

    泛型接口的定义方式与普通接口类似,只是在接口名之后添加了尖括号`&lt;T&gt;`,其中`T`是一个类型参数,代表某种未知的数据类型。例如: ```java public interface GenericInterface&lt;T&gt; { void operate(T element); ...

    java泛型BaseDao与BaseService

    Java 泛型是Java SE 5.0引入的一项重要特性,极大地增强了代码的类型安全性和重用性。在Java开发中,BaseDao和BaseService是常见的设计模式,用于实现数据访问层(DAO)和业务逻辑层(Service)的抽象基类。通过结合...

    Java泛型应用实例

    Java泛型是Java编程语言中的一个强大特性,它允许我们在定义类、接口和方法时指定类型参数,从而实现代码的重用和类型安全。在Java泛型应用实例中,我们可以看到泛型如何帮助我们提高代码的灵活性和效率,减少运行时...

    Java泛型_Java中的泛型结构_

    Java泛型是Java编程语言中一个强大的特性,它允许在定义类、接口和方法时使用类型参数,从而实现参数化类型。泛型的主要目标是提高代码的类型安全性和重用性,减少类型转换的麻烦,并在编译时捕获可能的类型错误。...

    Java泛型总结(2)进阶篇

    Java泛型是Java SE 5.0引入的一个重要特性,极大地提高了代码的类型安全性和重用性。在本文中,我们将深入探讨Java泛型的进阶概念,包括通配符、边界、类型擦除以及在实际开发中的应用。 1. 通配符 通配符在Java...

    java泛型深入.pdf

    首先,Java中的泛型允许定义方法、接口、类和变量时不指定具体的数据类型,而是在使用的时候再通过泛型类型参数来指定类型。泛型在JDK 1.5版本中引入。泛型避免了类型转换(Casting)的需要,比如以下示例代码: ``...

    java泛型初探

    首先,泛型的基本语法是在类、接口或方法定义前添加尖括号`&lt;&gt;`,并在其中声明一个或多个类型参数。例如,创建一个可以存储任意类型对象的ArrayList,我们使用`List&lt;T&gt;`,其中`T`就是类型参数,代表一种未指定的具体...

    java泛型的内部原理及更深应用

    Java泛型是Java编程语言中的一个强大特性,它允许在定义类、接口和方法时使用类型参数,从而实现参数化类型。这使得代码更加安全、可读性更强,并且能够减少类型转换的必要。在“java泛型的内部原理及更深应用”这个...

    面试必须资料java泛型攻略、

    泛型方法可以在不使用特定类型的情况下定义方法的行为。例如,下面的方法返回两个可比较对象中的最大值: ```java public &lt;T extends Comparable&lt;T&gt;&gt; T max(T t1, T t2) { if (t1.compareTo(t2) &gt; 0) { return t1...

    JAVA泛型教程(帮你解决学习泛型的苦恼)

    泛型的定义通常在类、接口或方法声明中,用尖括号 `&lt;T&gt;` 表示类型参数。在类 `Gclass&lt;T&gt;` 的例子中,`T` 是一个代表任意类型的占位符,可以被替换为任何实际类型。`getA()` 和 `setA(T)` 方法使用了这个类型参数,...

Global site tag (gtag.js) - Google Analytics