gpt4 book ai didi

java - 涉及通配符的赋值的实际应用是什么?

转载 作者:太空宇宙 更新时间:2023-11-04 12:25:11 25 4
gpt4 key购买 nike

这样的任务的原因是什么?

List<? extends Fruit> flist = new ArrayList<Apple>();
// flist.add(new Apple());
// flist.add(new Fruit());
// flist.add(new Object());

一旦我们将 Apple 容器“向上转换”到 Fruit 容器中,我们就无法在其中添加任何内容。

我知道我们可以做这样的事情:

List<Apple> basket = new ArrayList<Apple>();
//Fill the basket with tons of juicy apples
List<? extends Fruit> fruitContainer = basket;

然后我们就可以使用 Fruit接口(interface)来使用 fruitContainer 保存的元素。但是,如果我们以后无法添加任何内容,那么这样做的实际原因是什么?

List<? extends Fruit> flist = new ArrayList<Apple>();

最佳答案

整条线可能没有实际用途,但正如您在问题中所指出的,它的每个部分( List<? extends Fruit> flistnew ArrayList<Apple>() )分别具有实际用途。它们既有效又有用,只是不能组合使用(除非您不需要在列表中添加任何内容)。这就是它编译的原因,每个部分都是有效的;这取决于我们程序员如何以合理且有用的方式将它们组合起来。

关于java - 涉及通配符的赋值的实际应用是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38458520/

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