容器 与 泛型 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

 

posted on 2021-11-28 11:48  daofree  阅读(36)  评论(0编辑  收藏  举报