1、什么是泛型?
參數(shù)化類型, 比如形參,不提前只能參數(shù)的類型。
可以用在類、接口、方法中分別是泛型類、泛型接口、泛型方法。
2、eg:(JDK1.5之后引入泛型) List<String> arrayList = new ArrayList<String>();
3、 泛型只在編譯階段有效。
4、普通的泛型類

image.png
5、泛型接口

image.png

image.png
6、通配符(?)為了解決 參數(shù)類型的不同

image.png
限定通配符和非限定通配符
<? extends T> T的子類--上界 List<? extends T>
<? super T> T的父類---下界 List <? super T>
<?>非限定通配符
7、泛型方法:在調(diào)用的時候指明泛型的具體類型。

image.png
Object obj = genericMethod(Class.forName("com.test.test"));
8、java中是”不能創(chuàng)建一個確切的泛型類型的數(shù)組” 但是使用通配符可以
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);
}