これは私のクラスです:
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' タイプで初期化する方法は? ここで、引数 foodType と amount を指定して ConcreteFood で初期化しますが、私の目標は ConcreteFood を拡張する T でこのリストを初期化することです。ConcreteFood のすべてのサブクラスは、foodType と food count にアクセスできます。このリストを適切な ConcreteFood サブクラスで初期化し、各 ConcreteFood オブジェクトを foodType および count = 0 で初期化します。どうすればよいですか?