这是我的课:通用类的初始化
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