泛型通配符的含义

泛型,就是允许在定义类、接口、方法时使用类型形参,这个类型形参将在声明变量、创建对象、调用放法事动态地指定。

泛型存在的一个好处就是,如果我们不小心使用了其他非指定类型参数,在编译时期就能提醒。

泛型接口

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。

posted @   乐子不痞  阅读(201)  评论(0编辑  收藏  举报
编辑推荐:
· 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)
回到顶部
点击右上角即可分享
微信分享提示