容器 与 泛型 JDK容器与 自定义容器 见泛知容
容器 包装类 与 泛型 (JDK容器与 自定义容器,Optional类 由自定义 到 JDK官方)
集合容器中若存在多种类型,处理时会很麻烦,不知道拿出的是什么类型,容易出现错误
这个错误在编译期间无法被发现
但是 数组 String[] 在编译期间就会发现错误
集合参考数组,泛型来了,<参数类形T> T类
泛型的好处是在编译的时候检查类型安全
JDK泛型推断,由前推后
泛型类
前提
泛型方法
方法重载 -->
泛型方法1
泛型方法2--单独的 泛型方法
修饰符之后,返回值之前
方法重载 接收任意类型
泛型接口
常用第二种
常用的是 -- 以后才知道 --> 即泛型类
高级泛型
通配符
用泛型,是为了方便以后拿出来用!
泛型是给编译期看的,源码还是add(E e)
泛型的约束是在编译时约束的,真正运行的 class 是没有泛型约束的。
class文件 没有泛型,
泛型擦除
JVM并不知道泛型的存在,因为泛型在编译阶段就已经被处理成普通的类和方法;
处理机制是通过类型擦除,擦除规则:
若泛型类型没有指定具体类型,用Object作为原始类型;
若有限定类型< T exnteds XClass >,使用XClass作为原始类型;
若有多个限定< T exnteds XClass1 & XClass2 >,使用第一个边界类型XClass1作为原始类型;
反射 运行时 可以越过泛型检查 直接胡乱塞值
https://blog.csdn.net/weixin_43320847/article/details/82939786