我想要一个子类对象的集合,但是我的泛型类型实现现在给出了一个错误,allItems.add(item);
因为allItems
它不Item
包含类型。那么如何更改以下代码而不给出错误?
public class ItemManager {
public static Collection<? extends Item> allItems;
...
public static boolean addItem(Item item){
return allItems.add(item);
}
}
可能会添加一个新项目:
itemManager.add(new Bomb());
有没有办法改成addItem
:
public static boolean addItem([all subclasses of Item] item) { ... }
或者也许改变allItems
,所以它可以接受接收一个Item
和一个子类Item
?