gpt4 book ai didi

java - 列表#add(new MyClass()) 不编译

转载 作者:行者123 更新时间:2023-12-03 21:46:48 26 4
gpt4 key购买 nike

MyClass e = new MyClass();

List<Object> ok = new ArrayList<Object>();
List<? extends Object> ko = new ArrayList<Object>();

ok.add(e);
ko.add(e); // doesn't compile

为什么它不编译? MyClassObject 的子类...

有关信息,我收到以下消息:

The method add(capture#1-of ? extends Object) in the type List<capture#1-of ? extends Object> is not applicable for the arguments (MyClass)

最佳答案

这是你的问题:

List<? extends Object>

这意味着“它是某种类型 T 的列表,它扩展了 Object,但我不关心 T 是什么”。

所以这是有效的:

List<? extends Object> ko = new ArrayList<Banana>();

...但你不会想要:

ko.add(e);

到那个时候编译,你会吗?因为 MyClass 不是 Banana

参见 Java generics FAQ获取更多信息。

关于java - 列表<? extends Object>#add(new MyClass()) 不编译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13825071/

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