Java中增加泛型之前,泛型是使用继承实现的(通用的Object)
这样,get一个值的时候要进行强制类型转换
add的时候没有错误检查,可以添加任何类的对象,不安全
加入类型参数以后,get直接拿到类型,不需要进行强制类型转换
add的时候直接检测,插入类型错误直接报错,更加安全,可读性好
AirayList 类有一个方法 addAll 用来添加另一个集合的全部元素。 程序员可能想要将 ArrayList<Manager> 中的所有元素添加到 ArrayList<Employee> 中去。然而, 反过来就不行了。如何只能允许前一个调用,而不能允许后一个调用呢? Java语言的设计者发明了一个具 有独创性的新概念, 通配符类型 (wildcard type), 它解决了这个问题。
一个简单的泛型类的例子:
指定泛型类中的多个类型变量:
变量类型大写规范:
在 Java 库中, 使用变量 E 表 示集合的元素类型, K 和 V 分别表示表的关键字与值的类型。T ( 需要时还可以用临近的 字 母 U 和 S ) 表 示“ 任 意 类 型 ”。
可以在普通类中定义一个泛型方法:
如何调用以及类型推导:
可能出现的问题,寻找超类:
救措施是将所有的参数写为double值
类型变量的限定:
也可以有多个限定:
类型擦除...