java泛型中的?和T有什么区别?
发表于:2024-11-30 作者:热门IT资讯网编辑
编辑最后更新 2024年11月30日,T 代表一种类型。加在类上:class SuperClass{}加在方法上:public void fromArrayToCollection(T[] a, Collection c){}方法上的代表
T 代表一种类型。
加在类上:
class SuperClass{}
加在方法上:
publicvoid fromArrayToCollection(T[] a, Collection c){}
方法上的
class People{public void show(T a) { }}
T extends T2 指传的参数为T2或者T2的子类型。
?是通配符,泛指所有类型。
一般用于定义一个引用变量,这么做的好处是,如下所示,定义一个sup的引用变量,就可以指向多个对象。
SuperClass> sup = new SuperClass("lisi");sup = new SuperClass (new People());sup = new SuperClass (new Animal());
若不用?,用固定的类型的话,则:
SuperClasssup1 = new SuperClass ("lisi");SuperClass sup2 = new SuperClass ("lisi");SuperClass sup3 = new SuperClass ("lisi");
这就是?通配符的好处。
以上就是java泛型中T和?的区别的详细内容,更多请关注其它相关文章!