容器 与 泛型 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
分类:
JavaSE
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 25岁的心里话