1.什么是泛型?
泛型:声明中具有一个或多个类型参数的类或者接口;比如:List<E>
2.什么是原生态类型?
原生态类型:既不带任何实际类型参数的泛型名称;比如:List
3.为什么不要使用原生态类型?
因为原生态类型不存在限制的的类型,比如List a。
那么在往List a集合中可添加任意类型(这边举个xx类型对象)时不会报错:a.add(xx);
但是当要从该集合获取该对象时便会报错,因为它的类型并不匹配原生态类型,并抛出ClassCastException;
而泛型则避免了这一点,因为带有实际类型参数,所有可通过实际类型参数约束。
4.泛型的无限制通配符使用
使用通配符的目的:使可添加任意类型,但是添加的类型要是一样的。(这也是与原生态类型的区别,原生态可添加任意但无限制)
以下通配符实际上在一样的(你甚至可以写A、B、C),只是约定俗成上针对不同类型有不同的通配符。
E - Element (在集合中使用,因为集合中存放的是元素)
T - Type(Java 类)
K - Key(键)
V - Value(值)
N - Number(数值类型)
? - 表示不确定的java类型