• 技术文章 >Java >Java入门

    java泛型中T和?的区别

    王林王林2020-01-15 16:28:17原创4003

    T 代表一种类型。

    加在类上:

    class SuperClass<A>{}

    加在方法上:

    public <T>void fromArrayToCollection(T[] a, Collection<T> c){}

    (免费学习视频教程分享:java视频教程

    方法上的<T>代表括号里面要用到泛型参数,若类中传了泛型,此处可以不传,调用类型上面的泛型参数,前提是方法中使用的泛型与类中传来的泛型一致。

    class People<T>{
    public void show(T a) {
       }
    }

    T extends T2 指传的参数为T2或者T2的子类型。

    ?是通配符,泛指所有类型。

    一般用于定义一个引用变量,这么做的好处是,如下所示,定义一个sup的引用变量,就可以指向多个对象。

    SuperClass<?> sup = new SuperClass<String>("lisi");
    sup = new SuperClass<People>(new People());
    sup = new SuperClass<Animal>(new Animal());

    若不用?,用固定的类型的话,则:

    SuperClass<String> sup1 = new SuperClass<String>("lisi");
    SuperClass<People> sup2 = new SuperClass<People>("lisi");
    SuperClass<Animal> sup3 = new SuperClass<Animal>("lisi");

    这就是?通配符的好处。

    相关文章教程推荐:java入门教程

    以上就是java泛型中T和?的区别的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:java 泛型 T ? 区别
    上一篇:java逻辑控制语句实例详解 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • java中有哪些数据结构• java判断map中是否存在指定对象• java8 DateTimeFormatter的使用• java逻辑控制语句实例详解
    1/1

    PHP中文网