因此,我正在構建一個基於戰錘40k桌面遊戲的基礎程序,作爲我的Comp Sci類的額外功勞。我開始制定規格,然後實施規格。在這個遊戲中,我有一個類陸軍有類單位的ArrayList:如何將不同的內部類添加到ArrayList?
List<Units> unitsList = new ArrayList<Units>();
我已經包含不同的單位類型innerclasses創建的類單位。所以,從這個代碼片段將是:
public class Units
{
int strength, toughness, attacks, save, wounds;
class TroopUnit
{
public static final int strength = 3;
public static final int toughness = 3;
public static final int attacks = 1;
public static final int save = 5;
public int wounds = 1;
}
class EliteTroopUnit
{
public static final int strength = 3;
public static final int toughness = 3;
public static final int attacks = 1;
public static final int save = 4;
public int wounds = 1;
}
}
有更多的單位類型,但我認爲你可以得到的想法。我試着加入單位的ArrayList內單位的這些不同innerclasses:
不過,我碰到一個問題,因爲我必須聲明和實例與特定類型的內部類的ArrayList中,以添加內在的類。例如, List<Units.someUnitInnerClass> unitsList = new ArrayList<Units.someUnitInnerClass();
那麼,是否有解決此問題的方法,我可以將任何內部類添加到ArrayList?我是否錯誤地解決了這個問題?如果是這樣,還有什麼其他的選擇?謝謝!
編輯:我本來上市這是「我怎樣不同的子類添加到一個ArrayList,但是這是一個錯誤(由魯迪·克肖校正)
你是完全正確的,我的意思是內部類。讓我解決這個問題。好的,讓我試試這個解決方案 - 謝謝。 – Choonkies
好的,這似乎工作。我必須將內部類更改爲靜態內部類才能將內部類實例化到ArrayList中。例如, 靜態類TroopUnit擴展單位 另外,謝謝! – Choonkies
@OmarPatel - 沒問題,我很高興能幫上忙。如果您的問題已解決,請不要忘記接受答案旁邊的灰色勾號,這對您最有幫助。 –