java泛型中T和?的区别

互联网 20-1-15

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和?的区别的详细内容,更多内容请关注技术你好其它相关文章!

来源链接:
免责声明:
1.资讯内容不构成投资建议,投资者应独立决策并自行承担风险
2.本文版权归属原作所有,仅代表作者本人观点,不代表本站的观点或立场
标签: 区别
上一篇:php获取远程图片并下载保存到本地的方法分析 下一篇:vue.js与微信小程序区别是什么

相关资讯