サブクラスオブジェクトのコレクションが必要ですが、ジェネリック型の実装では、型を保持していない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