1、泛型类:
class Gen<T>
2、创建泛型对象:
Gen<Integer> iob = new Gen<Integer>(88);
Gen<String> strob = new Gen<String>("Generics Test");
3、约束类型:
class Number<T extends Number>{}
4、通配符实参:
通配符实参由“?”表示,代表未知的类型。
boolean absEqual(Number<?> ob){}
5、约束通配符:
Gen<? extends superclass>{} //为通配符建立上层约束,只有superclass的子类是可接受的,包含superclass
Gen<? super subclass>{} //为通配符建立下层约束,只有subclass的超类是可接受的实参,包含subclass
6、泛型方法:
<T> boolean equal(T a,T b){}
7、泛型构造函数:
<T extends Number>Summation(T arg){}
8、泛型接口:
interface Containment<T>
interface Containment<T extends Number>
9、类实现泛型接口:
class MyClass<T> implements Containment<T>{} //任何实现泛型接口的类,其自身也必须是泛型的
//MyClass类声明类型形参T,然后把T传递给Containment,因为Containment需要扩展Number的类型,所以MyClass类也必须指定相同的约束,因为在MyClass中已经建立了约束,就不需要在implements子句中再次指定它。下面的声明会报错
class MyClass<T extends Number> implements Containment<T>{}
class MyClass<T extends Number> implements Containment<T extends Number>{}// Wrong!!