1.泛型的概念
声明具有一个或者多个类型参数的类或者接口就是泛型。
2.每个泛型都定义了一个原生态类型,即不带任何实际类型参数的泛型名称。例如,List< String >相应的原生态类型是List。
3.无限制的通配符类型,如Set< ? >(读作“某个类型的集合”)。与原生态类型的区别是通配符类型是安全的,原生态类型则不安全。
4.使用泛型的好处
(1)对于错误的插入编译时会报错
(2)从集合中取元素时不再需要进行手工转换,编译器会进行隐式转换,并确保它们不会失败。
5.由于使用原生态类型会失掉泛型在安全性和表述性方面的所有优势,所以应该减少甚至不要使用原生态类型,除了以下两种情况:
(1)在类文字中必须使用原生态类型,如List.class,而不能使用List< ? >.class
(2)与instanceof操作符有关。
以上两种情况均是由于“泛型信息在运行时被擦除”。