gpt4 book ai didi

Java List 接口(interface)方法 : containsAll(Collection c)

转载 作者:行者123 更新时间:2023-11-29 06:07:57 27 4
gpt4 key购买 nike

我了解您将如何编写 contains(E item) 方法,方法是检查 this 中的每个项目,如果发现其中一个元素等于 item 则返回 true。

但是当你通过 c 时,你会如何处理集合的 Wildcard 类型?例如,你应该说:

for (Object item: c) {

您如何引用它是 ? 类型。

编译器不喜欢:

for (? item: c) 

for (<?> item: c)

最佳答案

是的,你会写

for (Object item: c) {

根本就没有名为 ? 的类型——它是一个通配符,表示此处允许任何内容(即允许的类型没有界限);它不是“通配符类型”。您能做的最好的事情就是使用 Object,因为您对此类集合中的元素一无所知。通配符的作用是表示类型未知

通配符与

有很大不同
Collection<E>

Collection<Object>

有一些解决这些差异的 SO 问题;一个是 Java Generics (Wildcards) .

但同样,关键思想是 ? 不是一种类型,它更像是一个元级概念。这就是为什么您不能声明该“类型”的变量的原因。

关于Java List 接口(interface)方法 : containsAll(Collection<? > c),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7961627/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com