为什么我们需要纯<?>
Java中?做任何事情过去了只能作为对象?因此,它是有用的铸态反对任何类相同(只有9种方法可提供)
谢谢
我的意思是,如果你有列表<?>列表中,您只能使用项目为对象。这意味着list.get(0)为您提供了对象,仅此而已。是的,我也可以存储有什么,但它是对你有用吗?这就像你有一个很好的昂贵的东西,它把一个垃圾桶。唯一你可以从一个垃圾桶得到的是垃圾。同样你可以把任何类目录的任何好的对象,但只得到从那里,只有9种方法的对象。
有两种情况,其中无界的通配符是一个有用的方法:
如果你正在写,可以使用所提供的功能来实现的方法Object
类。
当代码是使用不依赖于类型参数的泛型类的方法。
例如,List.size
,或List.clear
。事实上,Class<?>
人们常常使用,因为大部分的方法Class<T>
不依赖于T
。
例如,参见Collections.swap
方法:
public static void swap(List<?> list, int i, int j) {
final List l = list;
l.set(i, l.set(j, l.get(i)));
}
知道类型不在交换中的两个元件帮助List
,因此使用无界的通配符。你传递一个List
-任意List
-和方法互换的索引元素。没有类型参数的担心。
欲了解更多信息,请参阅:无界通配符。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句