1、什么是泛型?
参数化类型, 比如形参,不提前只能参数的类型。
可以用在类、接口、方法中分别是泛型类、泛型接口、泛型方法。
2、eg:(JDK1.5之后引入泛型) List<String> arrayList = new ArrayList<String>();
3、 泛型只在编译阶段有效。
4、普通的泛型类
image.png
5、泛型接口
image.png image.png
6、通配符(?)为了解决 参数类型的不同
image.png
限定通配符和非限定通配符
<? extends T> T的子类--上界 List<? extends T>
<? super T> T的父类---下界 List <? super T>
<?>非限定通配符
7、泛型方法:在调用的时候指明泛型的具体类型。
image.pngObject obj = genericMethod(Class.forName("com.test.test"));
8、java中是”不能创建一个确切的泛型类型的数组” 但是使用通配符可以
List<String>[] ls = new ArrayList<String>[10]; no
List<?>[] ls = new ArrayList<?>[10]; Y
List<String>[] ls = new ArrayList[10]; Y
9、写一个简单的泛型方法:T, E or K,V
public V put(K key, V value) {
return cache.put(key, value);
}
网友评论