-
复杂的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个答案 按时间排序 按投票排序
-
采纳的答案
泛型在是编译期间编译器检查 你写的代码是否符合规范
比如我实现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泛型定义.zip1.java泛型定义.zip1.java泛型定义.zip1.java泛型定义.zip1.java泛型定义.zip1.java泛型定义.zip1.java泛型定义.zip1.java泛型定义.zip1.java泛型定义.zip1.java泛型定义.zip1.java泛型定义.zip1....
- **定义**: 在方法签名中使用泛型,可以通过在方法签名中添加`<T>`来指定泛型类型,其中`T`是类型变量。 - **示例**: ```java public <T, S, U> U f(T t, S s) { // 方法体 } ``` 在这个例子中,`f`方法接受两个...
在Java中,List<T>、List<? extends T>和List<? super T>是泛型的不同使用形式,它们在类型约束和操作上有所不同。 1. List<? extends T> - `? extends T` 是类型上界的表示,意味着列表中的元素可以是T类型或者是...
extends Number> numberList = new ArrayList<>(); numberList.add(null); // 只能添加null // 使用下界通配符 List<? super Integer> integerList = new ArrayList<>(); integerList.add(1); // 可以添加Integer...
> flist = new ArrayList<>(); 这里,List<?> 表示“具有任何类型的列表”,编译器无法确定 List 所持有的类型。 泛型的限制 Java 泛型中有很多限制,例如: * 不能使用基本类型作为泛型类型参数。 * 不能使用...
- 由于历史原因,Java不支持泛型数组的直接创建,如`new MyList<String>[5]`是非法的。 - 可以通过类型安全的工厂方法或运行时转型解决这个问题。 通过以上知识点,我们可以看到Java泛型在编程中的重要性和灵活性...
"Java 泛型学习" Java 泛型是 Java 语言的类型系统的一种扩展,以支持创建可以按类型进行参数化的类。泛型的主要目标是提高 ...* 如果说 ArrayList<Integer> 是一个泛型化的类,那么它是否继承自 ArrayList<Object>?
abstract public class BaseHibernateEntityDao<T> extends HibernateDaoSupport { private Class<T> entityClass; public BaseHibernateEntityDao() { entityClass =(Class<T>) ((ParameterizedType) getClass()...
例如,定义一个List<Integer> intList = new ArrayList<Integer>(),那么在编译期就会检查该List只能添加Integer或int类型的数据,避免了其他类型的数据混入。 类型擦除 ---------- Java泛型在编译期之后就会把...
泛型接口的定义方式与普通接口类似,只是在接口名之后添加了尖括号`<T>`,其中`T`是一个类型参数,代表某种未知的数据类型。例如: ```java public interface GenericInterface<T> { void operate(T element); ...
Java 泛型是Java SE 5.0引入的一项重要特性,极大地增强了代码的类型安全性和重用性。在Java开发中,BaseDao和BaseService是常见的设计模式,用于实现数据访问层(DAO)和业务逻辑层(Service)的抽象基类。通过结合...
Java泛型是Java编程语言中的一个强大特性,它允许我们在定义类、接口和方法时指定类型参数,从而实现代码的重用和类型安全。在Java泛型应用实例中,我们可以看到泛型如何帮助我们提高代码的灵活性和效率,减少运行时...
Java泛型是Java编程语言中一个强大的特性,它允许在定义类、接口和方法时使用类型参数,从而实现参数化类型。泛型的主要目标是提高代码的类型安全性和重用性,减少类型转换的麻烦,并在编译时捕获可能的类型错误。...
Java泛型是Java SE 5.0引入的一个重要特性,极大地提高了代码的类型安全性和重用性。在本文中,我们将深入探讨Java泛型的进阶概念,包括通配符、边界、类型擦除以及在实际开发中的应用。 1. 通配符 通配符在Java...
首先,Java中的泛型允许定义方法、接口、类和变量时不指定具体的数据类型,而是在使用的时候再通过泛型类型参数来指定类型。泛型在JDK 1.5版本中引入。泛型避免了类型转换(Casting)的需要,比如以下示例代码: ``...
首先,泛型的基本语法是在类、接口或方法定义前添加尖括号`<>`,并在其中声明一个或多个类型参数。例如,创建一个可以存储任意类型对象的ArrayList,我们使用`List<T>`,其中`T`就是类型参数,代表一种未指定的具体...
Java泛型是Java编程语言中的一个强大特性,它允许在定义类、接口和方法时使用类型参数,从而实现参数化类型。这使得代码更加安全、可读性更强,并且能够减少类型转换的必要。在“java泛型的内部原理及更深应用”这个...
泛型方法可以在不使用特定类型的情况下定义方法的行为。例如,下面的方法返回两个可比较对象中的最大值: ```java public <T extends Comparable<T>> T max(T t1, T t2) { if (t1.compareTo(t2) > 0) { return t1...
泛型的定义通常在类、接口或方法声明中,用尖括号 `<T>` 表示类型参数。在类 `Gclass<T>` 的例子中,`T` 是一个代表任意类型的占位符,可以被替换为任何实际类型。`getA()` 和 `setA(T)` 方法使用了这个类型参数,...