1.泛型:编译时期的一个安全机制。(若无泛型,向下转型可能会出问题)
反省擦除:编译通过后会生产Class文件,在生成过程中会去掉泛型
2.泛型分类
(1).泛型类:class util<W>{}
(2).泛型方法:
class Demo<W>{
public <Q> void print(Q w){}
}
注:泛型方法传入类型可与泛型类不同
静态方法不能访问类上泛型,只能访问方法上泛型
public static <Q> void staticShow(Q q){}
(3).泛型接口:interface Inter<T>{
public void show(T t);
}
3.通配符:在不确定具体类型的情况下,用通配符表示
public static void pp(Collection<?> coll){}
<? extends E>:E及其子类均可以(设定上限)
<? super E>:E及其父类均可以(设定下限)