- 泛型:变量类型的参数化
- 需要限定一接口的实现类,类的子类是其泛型类型时。例如,T只能用实现了List接口的类型<T extend List>
- 如果没有指定泛型类别,会自动用<T extend Object>,所以默认不用的时候,会接收任何java的类型,注:数组也是Object的子类
- 有一个自定义泛型类:GenericTest<T>{},现在声明一个引用 GenericTest<? extends List> ge=null;
这个引用的意思是可以指向一个类型为 GenericTest,泛型类型是List接口体系下的一个实例,可以ge= new GenericTest< ArrayList>;也可以 ge= GenericTest< LinkedList>
- 有一个自定义泛型类:GenericTest<T>{},现在声明一个引用 GenericTest<? super List> ge=null;
这个引用的意思是可以指向一个类型为 GenericTest,泛型类型是List接口体系上的一个实例, ge= GenericTest< Collection> 但是 ge= GenericTest< LinkedList>会报错
- 泛型使用中,经常看到 GenericTest<?> ge,其实这是 GenericTest<? extends Object> ge的缩写,意思是泛型类型可以是任何一个java类型