這是我的課:通用類的初始化
public class FoodSet<T extends ConcreteFood>{
public List<T> food = new ArrayList<T>();
public FoodSet()
{
/*
* FoodType is an enum containing food types e.g: rice, pork, beef ...
*/
for(FoodType foodType : FoodType.values())
{
/*
* 1(*)
*/
food.add((T)new ConcreteFood(foodType,0))
}
}
}
而在1(*)的問題是,如何初始化這份名單中,有「T」型? 現在我用ConcreteFood初始化它,給出參數foodType和amount, 但我的目標是用T來啓動這個列表,它擴展了ConcreteFood。 ConcreteFood的每個子類都可以獲得食物類型和食物數量。 我只是想用適當的ConcreteFood子類初始化這個列表,並且 init每個ConcreteFood對象的foodType和count = 0。 我應該怎麼做?
'ConcreteFood'是誤導,我想他是指那些同意基本食品 – A4L 2013-03-25 12:49:16
的專長,但如果是這樣的話,爲什麼不不是擴展接口食物清單? – duffymo 2013-03-25 12:55:53
這是錯誤開始的地方:) – A4L 2013-03-25 12:57:30