栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

1.通配符?和T的区别

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

1.通配符?和T的区别

文章目录
    • 通配符?和T的区别

通配符?和T的区别

T: 是一个形参,理解为一个占位符。会在程序运行时替换成具体的类型,为此只关注泛型的方式时,只有在运行时,才能确定T的具体类型是什么。
?: 是一个实参,是Java定义的特殊类型,比Object更特殊。List和List没有关系,List和List存在父子关系。如下图

区别一: List遍历时不关心元素类型,默认元素类型是Object或者父类元素类型

public static  void test3(List list) {
    // 遍历的是具体的类型T
    for (T t : list) {
        System.out.println(t.getStr());
    }
}
public static void test2(List list) {
    // 遍历顶级元素类型
    for (Object obj : list) {
    }
}
public static void test2(List list) {
    // 遍历顶级元素类型
    for (User3 user : list) {
        // 这里的user引用可指向子类对象,执行子类覆盖父类的方法
    }
}

区别二: 使用extends限定类型子集的时候,?不能多重继承,T 可以

参考:泛型多继承范围限定

转载请注明:文章转载自 www.mshxw.com
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号