Java 之间有什么区别and ?

Java 之间有什么区别and ?,第1张

Java 之间有什么区别 and ?

第一个说是“是E的祖先的某种类型”。第二个说是“某种类型,它是E的子类”。(在两种情况下,

E
本身都可以。)

因此,构造函数使用该?

extends E
形式,以确保在从集合中获取值时,它们将全部为E或某个子类(即,它是兼容的)。该
drainTo
方法试图将值放入集合中,因此集合必须具有
E
或超类的元素类型。

例如,假设你有一个这样的类层次结构:

Parent extends ObjectChild extends Parent

和一个

linkedBlockingQueue<Parent>
。你可以构造一个传入的,以
List<Child>
安全地复制所有元素,因为每个元素Child都是父元素。你无法传入,
List<Object>
因为某些元素可能与不兼容Parent。

同样,你可以将队列排入

a
List<Object>
因为每个队列
Parent
都是
Object...
,但是你不能将其排入a,
List<Child>
因为
List<Child>
期望所有元素都与兼容
Child



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5109186.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-17
下一篇 2022-11-17

发表评论

登录后才能评论

评论列表(0条)

保存