我有一個方法,需要一個超類(特別是我的類Mob)的列表。它看起來像這樣:將子類對象添加到超類列表
List<? extends Mob> mobs
我希望能夠加入擴展了超類的羣氓到這個列表中的任何對象,像這樣:
spawnMob(new Zombie(World.getInstance(), 0, 0), World.getInstance().getZombies());
如果是這種問題的方法:
public static void spawnMob(Mob mob, List<? extends Mob> mobs){
mobs.add(mob);
}
這行代碼World.getInstance().getZombies()
返回對象Zombie的列表。殭屍延伸暴民。
然而,這行代碼:
mobs.add(mob);
拋出這個錯誤:
The method add(capture#1-of ? extends Mob) in the type List<capture#1-of ? extends Mob> is not applicable for the arguments (Mob)
我能做些什麼來解決這個問題?
編輯,改變以除外List<Mob>
的方法後,我收到此錯誤:
The method spawnMob(Mob, List<Mob>) in the type MobSpawner is not applicable for the arguments (Zombie, List<Zombie>)
爲什麼不定義你的列表,列表' mobs'?您仍然可以將擴展Mob的對象添加到該列表中。 –
exception1