一、泛型的基础知识
示例:
集合使用泛型的好处:
二、泛型的扩展
java中的泛型是伪泛型!!!因为,类型擦除(Type Erasure)的实现机制。
当数据存储到集合中时,集合还是会把这些数据当做是object类型来处理,当获取数据的时候,集合的底层会把object类型的数据,按照泛型强转。
类型擦除(Type Erasure)的原因:
向后兼容旧版本:Java泛型的设计初衷之一是向后兼容旧版本的Java代码。因为旧版本的JAVA代码中的集合类型都是Object类型。
类型擦除机制使得旧版本的Java虚拟机(JVM)能够无缝地运行使用泛型的新代码,而无需进行任何修改。然而,这也带来了运行时类型信息丢失的副作用。
三、泛型的细节
四、泛型在其他地方的定义
4-1、泛型类
示例1:
示例2:
4-2、泛型方法
示例:
4-3、泛型接口
泛型接口的使用:
- 方式1:实现类给出具体类型
- 方式2:实现类延续泛型,创建对象时再确定
1、实现类给出具体类型
2、实现类延续泛型,创建对象时再确定
五、泛型的继承和通配符
泛型不具备继承性,但是数据具备继承性!!!
泛型不具备继承性:
数据具备继承性:
示例1:
示例2:
本方法虽然不确定类型,但是我希望以后只能传递:ye、fu、zi。