这是我的课:
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 和数量,但我的目标是用扩展 ConcreteFood 的 T 初始化这个列表。ConcreteFood 的每个子类都可以访问 foodType 和 food count。我只想用适当的 ConcreteFood 子类初始化这个列表,并用 foodType 和 count = 0 初始化每个 ConcreteFood 对象。我应该怎么做?