[进阶]集合的进阶(1)泛型
文章目录
- 泛型的深入
- 泛型的细节
- 泛型可以在很多地方定义
- 泛型的继承和通配符
- 总结
泛型的深入
泛型:是JDK5中引入的特性,可以在编译阶段约束操作的数据类型,并进行检查
泛型的格式:<数据类型>
注意:泛型只能引用数据类型
泛型的好处
- 统一了数据类型
- 把运行时期的问题提前到了编译期间,避免了强制类型转换可能出现的异常,
因为在编译阶段类型就能确定下来
扩展知识点:Java中的泛型是伪泛型
泛型的细节
- 泛型中不能写基本数据类型
- 指定泛型的具体类型之后,传递数据时,可以传入该类型或者其子类类型
- 不过不写泛型默认object类型\
泛型可以在很多地方定义
- 泛型类
- 泛型方法
- 泛型接口
泛型类
使用场景:当一个类中,某个变量的数据类型不确定时,就可以定义带有泛型的类
泛型方法
方法中形参类型不确定时,可以使用类名后面定义的泛型
方法中型参类型不确定时
-
使用类名后面定义的 泛型 所有方法都能用
-
在方法申明上定义自己的泛型 只有本方法能用
泛型接口
实现类给出具体类型
实现类延续泛型,创建对象时在确定
泛型的继承和通配符
- 泛型不具备继承性,但是数据具备继承性
泛型的通配符
? 也表示不确定的类型他可以进行类型的限定
?extends E: 表示可以传递E或者E所有的子类类型
?super E: 表示可以传递E或者E所有的父类类型 I
总结
1.什么是泛型?
- JDK5引入的特性,可以在编译阶段约束操作的数据类型,并进行检查
2.泛型的好处?
- 统一数据类型
- 把运行时期的问题提前到了编译期间,避免了强制类型转换可能出现的异常,因为在编译阶段类型就能确定下来。
3.泛型的细节?
- 泛型中不能写基本数据类型
- 指定泛型的具体类型后,传递数据时,可以传入该类型和他的子类类型
- 如果不写泛型,类型默认是0bject