泛型通配符的含义
泛型,就是允许在定义类、接口、方法时使用类型形参,这个类型形参将在声明变量、创建对象、调用放法事动态地指定。
泛型存在的一个好处就是,如果我们不小心使用了其他非指定类型参数,在编译时期就能提醒。
泛型接口
public interface List<E> {
//在该接口中,E可作为任意类型使用
void add(E x);
Iterator<E> iterator();
...
}
泛型类
public class Apple<T> {
// 使用 T 类型形参定义实例变量
private T info;
// 使用 T 类型形参定义构造器
public Apple(T info){
this.info = info;
}
...
public static void main(String[] args){
// 传给 T 形参为 String 类型
Apple<String> a1 = new Apple<>("苹果");
// 传给 T 形参为 Double 类型
Apple<Double> a2 = new Apple<>(1.23);
}
}
经常看到泛型中的 E T V ? 等通配符不知道是什么含义,今天去查了一下。
类型通配符的含义
E ----- Element(元素 ,集合中使用)
T ----- Type(类型 ,类)
K ----- key(键)
V ----- Value(值)
N ----- Number(数值类型)
? ----- 不确定的java类型
<? extends T>
和 <? super T>
<? extends T>
表示类型的上界,参数类型是T或T的子类。
<? super T>
表示类型下界,参数类型是T或T的父类型。
如果频繁往外读取内容,适合用上界Extends。
如果频繁插入内容,适合用下界super。
分类:
Java
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)