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

问题描述

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();}

解决方案

泛型在是编译期间编译器检查 你写的代码是否符合规范比如我实现Geneclass GeneImpl<A, G extends Gene<A, G>> implements Gene{public GeneImpl(A a,G g){}@Overridepublic Object getAllele() {// TODO Auto-generated method stubreturn null;}}在new GeneImpl(xx,yy )是会检查你传入的参数是否合法,xx是否是A类型;yy是否是Gene或其子类型

时间: 2024-11-16 13:15:55

复杂的java泛型定义,Gene&amp;lt;A, G extends Gene&amp;lt;A, G&amp;gt;&amp;gt;,看不懂啊,求解释?的相关文章

java泛型type体系整理

一直对jdk的ref使用比较模糊,早上花了点时间简单的整理了下,也帮助自己理解一下泛型的一些处理.   java中class,method,field的继承体系     java中所有对象的类型定义类Type   说明:    Type :  Type is the common superinterface for all types in the Java programming language. These include raw types, parameterized types, 

问一个Java泛型与类继承的问题

问题描述 问一个Java泛型与类继承的问题 直接上代码了 //DeviceRepository类 public abstract class DeviceRepository<T extends Device> extends DomainRepository<T> //DeviceEventHandler类第一种写法 public abstract class DeviceEventHandler<M extends Device,R extends DeviceRepos

java 泛型-关于Java泛型推断,希望大牛不吝赐教

问题描述 关于Java泛型推断,希望大牛不吝赐教 请教大牛一个问题,希望不吝赐教,关于泛型的推断:当某个类型变量在整个参数列表中的所有参数和返回值中的多处被应用了,如果调用方法时这多处的实际应用类型对应到了不同的类型,且没有使用返回值,这时候取多个参数中的最大交集类型 例:下面语句实际对应的类型就是Number了,编译没问题,只是运行时出问题. public static void test(T[] array, T b) { for (int i = 0; i < array.length;

深入理解java泛型

一. 什么是泛型? 泛型(Generic type 或者 generics)是对 简单的理解,就是对类型的参数化,比如我们定义一个类属性或者实例属性时,往往要指定具体的类型,如Integer.Person等等, 但是如果使用了泛型,我们把这些具体的类型参数化,用一个广泛的可以表示所有类型的"类型"T来定义,那这个T就是泛型的表示. 可以在集合框架(Collection framework)中看到泛型的动机.例如,Map 类允许您向一个 Map 添加任意类的对象,即使最常见的情况是在给定

java泛型【收藏】

什么是泛型? 泛型(Generic type 或者 generics)是对 Java 语言的类型系统的一种扩展,以支持创建可以按类型进行参数化的类.可以把类型参数看作是使用参数化类型时指定的类型的一个占位符,就像方法的形式参数是运行时传递的值的占位符一样. 可以在集合框架(Collection framework)中看到泛型的动机.例如,Map 类允许您向一个 Map 添加任意类的对象,即使最常见的情况是在给定映射(map)中保存某个特定类型(比如 String)的对象. 因为 Map.get(

java泛型怎么理解?求指教

问题描述 java泛型怎么理解?求指教 java泛型中,定义泛型方法格式:public T fun(T t),这几个T分别是什么意思? 我知道最后一个T是参数,那前面两个T表示什么?哪个表示返回类型? 解决方案 你的意思应该是public T fun(T t)中几个T的含义.从左至右: 1,代表声明此方法中T是泛型,否则T代表名字为'T'的类 2,第二个T代表返回值 3,第三个代表参数 另外带泛型的类写法是 class Demo<E>{ void method1(E obj){ } E met

从零开始来看一下Java泛型的设计

引言 泛型是Java中一个非常重要的知识点,在Java集合类框架中泛型被广泛应用.本文我们将从零开始来看一下Java泛型的设计,将会涉及到通配符处理,以及让人苦恼的类型擦除. 泛型基础 泛型类 我们首先定义一个简单的Box类: public class Box { private String object; public void set(String object) { this.object = object; } public String get() { return object;

Java泛型中extends和super的理解(转)

E – Element (在集合中使用,因为集合中存放的是元素) T – Type(Java 类) K – Key(键) V – Value(值) N – Number(数值类型) ? – 表示不确定的java类型(无限制通配符类型) S.U.V – 2nd.3rd.4th types Object – 是所有类的根类,任何类的对象都可以设置给该Object引用变量,使用的时候可能需要类型强制转换,但是用使用了泛型T.E等这些标识符后,在实际用之前类型就已经确定了,不需要再进行类型强制转换. ?

请教一个关于java泛型的语法问题

问题描述 最近编程序的时候遇到一个java泛型的语法问题,不知道应该怎样实现,麻烦各位大牛帮忙解答: 如果父类在类上声明了泛型的话子类可以将泛型类型指定成一个具体类型,比如: class FatherA<T> { public  void test(T t) {      ;} } class ChildA extends FatherA<String>{ @Overridepublic  void test(String t) {//这里的 t 类型是 java.lang.Str