为什么我们需要纯<?>在Java中?

arminvanbuuren:

为什么我们需要纯<?>Java中?做任何事情过去了只能作为对象?因此,它是有用的铸态反对任何类相同(只有9种方法可提供)

谢谢


我的意思是,如果你有列表<?>列表中,您只能使用项目为对象。这意味着list.get(0)为您提供了对象,仅此而已。是的,我也可以存储有什么,但它是对你有用吗?这就像你有一个很好的昂贵的东西,它把一个垃圾桶。唯一你可以从一个垃圾桶得到的是垃圾。同样你可以把任何类目录的任何好的对象,但只得到从那里,只有9种方法的对象。

奥列克Pyrohov:

有两种情况,其中无界的通配符是一个有用的方法:

  • 如果你正在写,可以使用所提供的功能来实现的方法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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

为什么我们需要C ++中的纯虚拟析构函数?

为什么我们到底需要Java中的StringBuffer

为什么我们需要Java中的默认方法?

为什么我们需要Java中的Properties类?

为什么我们需要Java中的弱引用

为什么我们在MongoDB中需要created_at

为什么我们需要python中的协程?

为什么我们需要Kubernetes中的服务帐户?

为什么我们在芹菜中需要签名?

为什么我们在git中需要SSH密钥?

为什么我们需要C ++中的虚函数?

为什么我们需要Clojure中的'in(require'[...]])?

为什么我们在Python中需要“ finally”子句?

为什么我们在Hadoop堆栈中需要ZooKeeper?

为什么我们在Typescript中需要任何类型?

为什么我们需要Python中的属性?

为什么我们在区块链中需要 TLSNotary?

为什么我们需要Java中的用户定义的类加载器

为什么我们需要在Java中对ArrayList使用迭代器?

为什么我们需要需要的Java-9模块系统静态?

为什么我们在http响应消息中既需要状态代码又需要短语代码?

Rest API中的事件流是什么,为什么我们需要它?

Java LRUCache,为什么我们需要另一个集合

java Guava ThreadFactoryBuilder为什么我们需要计数为AtomicLong

为什么我们需要在Java中使用移位运算符?

为什么我们需要Scala的ParHashMap,而Java却有ConcurrentHashMap

Java EE:为什么我们需要了解并发性?

为什么我们需要Rx中的CompositeDisposable,以及以前在普通Java中使用过什么?

为什么我们在extjs中需要childEls-在哪里使用呢?