我可能有錯誤的想法與這一點,但我承擔......如何輸入一個類作爲其子類中的一個動態
我有一個我想與多個子的一個調用一個函數類類型ComboA,ComboB等(都擴展了超類「Combos」)。
ArrayList<Combos> combos = null; //of type combos, which is super class of Combo A and Combo B
switch (which) {
case 1:
combos = CombosA; //this is of type ComboA
break;
case 2:
combos = CombosB; //this is of type ComboB
break;
}
根據switch語句,我希望函數(組合)中的單個變量保留子類的所有類函數。這樣我就不必爲每個組合類型創建一堆函數了 - 我想使用相同的變量名稱(組合),而不管它是哪個子類。
我嘗試使用仿製藥,但事情是,在CombosA和CombosB變量此範圍內,全球該類的定義之外,我不知道如何使用仿製藥,除非我定義功能
public <E extends Combos> void Test(ArrayList <E> CombosA)
或者類似的東西,我想這將需要另一個單獨的變量在函數調用中發送,而不是全局的。我可能能夠複製CombosA數組列表並將副本發送到函數中以使通用函數可以工作,但是,我認爲必須有更好的方法。
任何幫助將不勝感激!
這與泛型沒有任何關係。 – 2011-12-22 12:43:31