我有一个叫做Food
的课程。
食物内部是一个枚举FoodType
:
public class Food {
public enum FoodType {
STRAWBERRY, COOKIE, CHILLI, APPLE, BURGER, HOTDOG, PIZZA, LEMON
}
FoodType foodType;
...
}
在我的食物构造函数中,我有这个:
public Food(Vector2 position) {
...
this.foodType=generateFoodType();
}
其中
generateFoodType
将从我的枚举中随机返回值之一。我遇到的问题是食物的某些其他属性将取决于食物的类型(例如大小)。这迫使我在设置食物属性之前要不断检查食物的类型,我发现自己不断在写switch语句,只是使事情看起来一团糟。
我曾考虑过创建
Food
的子类而不是使用枚举,但是我想知道是否有人可以看到另一种方法,因为如果这样做,我可能会得到很多类。 最佳答案
只需将属性添加到enum
值即可。这个问题包含许多方法来做到这一点:Conveniently map between enum and int / String
您甚至可以将方法添加到枚举和override them for each value中。