Bootstrap

[进阶]集合的进阶(1)泛型

泛型的深入

泛型:是JDK5中引入的特性,可以在编译阶段约束操作的数据类型,并进行检查
泛型的格式:<数据类型>
注意:泛型只能引用数据类型
泛型的好处

  • 统一了数据类型
  • 把运行时期的问题提前到了编译期间,避免了强制类型转换可能出现的异常,
    因为在编译阶段类型就能确定下来

扩展知识点:Java中的泛型是伪泛型

泛型的细节

  • 泛型中不能写基本数据类型
  • 指定泛型的具体类型之后,传递数据时,可以传入该类型或者其子类类型
  • 不过不写泛型默认object类型\

泛型可以在很多地方定义

  • 泛型类
  • 泛型方法
  • 泛型接口

泛型类
使用场景:当一个类中,某个变量的数据类型不确定时,就可以定义带有泛型的类
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
泛型方法
方法中形参类型不确定时,可以使用类名后面定义的泛型
在这里插入图片描述
方法中型参类型不确定时

  • 使用类名后面定义的 泛型 所有方法都能用
    在这里插入图片描述

  • 在方法申明上定义自己的泛型 只有本方法能用
    在这里插入图片描述
    泛型接口
    在这里插入图片描述
    在这里插入图片描述

实现类给出具体类型

在这里插入图片描述

实现类延续泛型,创建对象时在确定
在这里插入图片描述

泛型的继承和通配符

  • 泛型不具备继承性,但是数据具备继承性
    在这里插入图片描述

在这里插入图片描述
泛型的通配符

? 也表示不确定的类型他可以进行类型的限定
?extends E: 表示可以传递E或者E所有的子类类型
?super E: 表示可以传递E或者E所有的父类类型 I

总结

1.什么是泛型?

  • JDK5引入的特性,可以在编译阶段约束操作的数据类型,并进行检查

2.泛型的好处?

  • 统一数据类型
  • 把运行时期的问题提前到了编译期间,避免了强制类型转换可能出现的异常,因为在编译阶段类型就能确定下来。

3.泛型的细节?

  • 泛型中不能写基本数据类型
  • 指定泛型的具体类型后,传递数据时,可以传入该类型和他的子类类型
  • 如果不写泛型,类型默认是0bject
;