gpt4 book ai didi

java - 这到底是什么意思 Collection c

转载 作者:搜寻专家 更新时间:2023-10-31 19:32:28 27 4
gpt4 key购买 nike

有时,很多次我在文档中看到这种情况。这让我想知道要输入什么。有人可以用清晰的简化文字向我解释这句话的意思吗:D。这是怎么回事:

ArrayList(Collection<? extends E> c)

最终被用作:

new ArrayList<>(Arrays.asList("a","b","c"));

所以我不需要再通过谷歌搜索来问这个“问题”,而是能够自己弄清楚。

最佳答案

语法 ? extends E意思是“某种类型,要么是 E 要么是 E 的子类型”。 ?是通配符。

代码Arrays.asList("a","b","c")推断返回 List<String> , 和 new ArrayList<>使用菱形运算符,因此会产生 ArrayList<String> .

通配符允许您推断子类型——您可以将其分配给具有父类(super class)型的引用变量:

List<CharSequence> list = new ArrayList<>(Arrays.asList("a","b","c"));

在这里,E被推断为 CharSequence而不是 String ,但这行得通,因为 StringCharSequence 的子类型.

关于java - 这到底是什么意思 Collection<?延伸 E> c,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33554839/

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