我有一个类B它扩展了A。 甲存储AItem和乙商店BItem泛型向数组中添加子类
在列表的列表 'A' 我有一个ArrayList的其使用[?扩展了AItem]。
我认为这意味着我可以使用此ArrayList的任何类型的扩展AItem的对象。
所以在我的B类中,我有一个方法add(..),它将BItem添加到项目中。
我认为这将工作,因为项目arrayList可以容纳从AItem延伸的任何对象的列表。
import java.util.ArrayList;
class A {
public ArrayList<? extends AItem> items;
}
public class B extends A{
public void add(BItem i) {
this.items.add(i); //compile error here
}
}
//items :
class AItem {}
class BItem extends AItem{}
我该如何得到这个工作?
我的编译错误是这样的:
Add方法(捕获#2的扩展AItem?)在类型 ArrayList中是不适用的 参数(BItem)
无法项目添加到[我如何添加 – Ian2thedv
未知类型可能重复的名单到列表<?扩展数字>数据结构?](http://stackoverflow.com/questions/2776975/how-can-i-add-to-list-extends-number-data-structures) – Ian2thedv
非常好的问题。我保持寻找答案,但我认为你需要用一些类来初始化arrayList。 – jabujavi