猿问

List<T> 和 List<?>分别代表什么意思?

List<T> 和 List<?>分别代表什么意思


慕雪6442864
浏览 1006回答 2
2回答

弑天下

T 代表某一类型 ? 代表任意类型。。T因为代表是某一确定类型。。所以你可以使用它。。比如你有个List<T>类型的变量tList 你可以用T t = tList.get(1);也可以用add但是?可以是任意类型。。你不能进行那种与他里面装的东西的类型有关的操作。。比如add get等。。其中get只能复制给object类型。add甚至连object都不能用。。因为他可以是任意类型。。编译器不能确定他是什么类型。。但前者编译器知道他的类型是T。。我说的是调用List里的get 和add方法

慕神8447489

没什么区别,List<?>应该是出现在讲解的示例里吧与标准的List<T>,?和T都是用来标识一个未定义类型的占位符,是jdk1.5出来的泛型,其中包括泛型方法、泛型类、泛型接口等List<T> 换成 List<Student> list = new ArrayList<Student>();这个时候list集合就只能装Student类型的值了,你就比喻成家里的装物箱,原本装物箱啥东西都可以往里放,里边的东西装杂了,你去找或取就不方便;这时你就把装物箱分类进行装不同的物品,你想想分类后你要找物品不就容易多啦
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答