泛型程序设计(一)

Java中增加泛型之前,泛型是使用继承实现的(通用的Object)

这样,get一个值的时候要进行强制类型转换

add的时候没有错误检查,可以添加任何类的对象,不安全

加入类型参数以后,get直接拿到类型,不需要进行强制类型转换

add的时候直接检测,插入类型错误直接报错,更加安全,可读性好

AirayList 类有一个方法 addAll 用来添加另一个集合的全部元素。 程序员可能想要将 ArrayList<Manager> 中的所有元素添加到 ArrayList<Employee> 中去。然而, 反过来就不行了。如何只能允许前一个调用,而不能允许后一个调用呢? Java语言的设计者发明了一个具 有独创性的新概念, 通配符类型 (wildcard type), 它解决了这个问题。 

一个简单的泛型类的例子:

指定泛型类中的多个类型变量:

变量类型大写规范:

在 Java 库中, 使用变量 E 表 示集合的元素类型, K 和 V 分别表示表的关键字与值的类型。T ( 需要时还可以用临近的 字 母 U 和 S ) 表 示“ 任 意 类 型 ”。 

 

可以在普通类中定义一个泛型方法:

如何调用以及类型推导:

可能出现的问题,寻找超类:

救措施是将所有的参数写为double值

 

类型变量的限定:

也可以有多个限定:

 

类型擦除...

 

 

posted @ 2018-12-24 09:46  geeklove  阅读(241)  评论(0编辑  收藏  举报