我有一个 Java 类,其中包含扩展 MyClass 的对象的子项。
class MyClass {
List<? extends MyClass> items;
[...]
出于某种原因,我无法将MyClass项目插入到此列表中。我不明白为什么,以及如何绕过这个问题。例如:
void foo(){
items = new LinkedList<MyClass>(); // This is OK
items.add(new MyClass()); // Not allowed... why?
}
编译器说“类型 List 中的方法 add(capture#1-of ? extends MyClass) 不适用于参数 (MyClass )”
我真的不明白如何绕过这个问题,以及为什么编译器应该只接受必须扩展MyClass的类型。
注意:为什么我需要使用这种方法?因为我需要允许 MyClass 的扩展具有子项列表。
茅侃侃
慕虎7371278
相关分类