JAVA泛型
泛型概念
泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。
泛型提供了编译时类型安全检测机制,该机制允许程序员在编译时检测到非法的类型。
java 中泛型标记符
- E - Element (在集合中使用,因为集合中存放的是元素)
- T - Type(Java 类)
- K - Key(键)
- V - Value(值)
- N - Number(数值类型)
- ? - 表示不确定的 java 类型
泛型使用类型
- 泛型方法
-- 所有泛型方法声明都有一个类型参数声明部分(由尖括号分隔),该类型参数声明部分在方法返回类型之前。
-- 每一个类型参数【类型变量】声明部分包含一个或多个类型参数,参数间用逗号隔开。如Map<K, V>一
-- 类型参数能被用来声明返回值类型,并且能作为泛型方法得到的实际参数类型的占位符。
-- 泛型方法体的声明和其他方法一样。注意类型参数只能代表引用型类型,不能是原始类型(像 int、double、char 等)
- 泛型类
泛型类的声明:在类名后面添加了类型参数声明部分(尖括号)。
类型通配符
类型通配符一般是使用 ? 代替具体的类型参数
类型通配符上下界
- 表示该通配符所代表的类型是T类型的子类。
- 表示该通配符所代表的类型是T类型的父类。
上下界的使用场景
一般在存储元素的时候都是用上界,因为这样取出都是按照上界类型来运算的。不会出现类型的安全隐患。
通常对集合中的元素进行取出操作时,可以是用下界。
参考https://blog.csdn.net/Happy_cloudlife/article/details/77529429
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~