泛型的本质是参数化类型,即将操作数的数据类型指定为一个参数。当这种参数类型用在类中时,就称该类为泛型类。
泛型类的格式:
[类修饰词] class 类名<类型参数> [extends 父类名] [implements 接口名]{ 类体
}
在引入泛型之前,要在类中的方法支持多个类型,就需要对方法进行重载,在引入泛型后,可以解决此问题(多态),更进一步可以定义多个参数以及返回值之间的关系。例如:
public void writer(Integer i, Integer[] ia);
public void writer(Double i, double[] ia);
泛型版本为:
public <T> writer(T t, T ta);
通配符:
<?>表示未指定的类型,java会自动将其当作最顶层的Object类,所以它和<Object>等效。
<T extends Student>表示泛型T指代Student类及继承它的子类、子类的子类......
<T super Student>表示泛型T指代Student类及它的父类、父类的父类......
参考 娄宗