java泛型中的?和T有什么区别?-创新互联

T 代表一种类型。

成都创新互联公司技术团队十载来致力于为客户提供成都做网站、成都网站制作、成都品牌网站建设全网营销推广、搜索引擎SEO优化等服务。经过多年发展,公司拥有经验丰富的技术团队,先后服务、推广了千余家网站,包括各类中小企业、企事单位、高校等机构单位。

加在类上:

class SuperClass{}

加在方法上:

public void 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());

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

SuperClass sup1 = new SuperClass("lisi");
SuperClass sup2 = new SuperClass("lisi");
SuperClass sup3 = new SuperClass("lisi");

这就是?通配符的好处。

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


分享文章:java泛型中的?和T有什么区别?-创新互联
本文链接:
http://scyanting.com/article/gddhj.html