几天前我做了一个similar question,但现在我有了新的需求,并且新的挑战=)。像往常一样,我使用动物枚举的教学目的,一旦我不想解释领域特定的东西Java枚举:从另一个枚举中收集信息
我有一个动物的基本枚举,这是整个动物园使用(我可以添加东西它,但必须保持兼容性):
public enum Animal {
DOG,
ELEPHANT,
WHALE,
SHRIMP,
BIRD,
GIRAFFE;
}
我需要一些非相关类别对其进行分类,像灰色动物(鲸(我的鲸是灰色)和大象),小动物(鸟类,虾和狗),海洋动物(鲸鱼和虾)。
我可以像我之前的问题中所建议的那样添加很多布尔类型,比如isGray,isSmall和isFromSea,但我想要一种方法可以将其保存在别的地方(所以我的枚举不需要知道很多)。喜欢的东西:
public enum Animal {
DOG,
ELEPHANT,
WHALE,
SHRIMP,
BIRD,
GIRAFFE;
public boolean isGray() {
// What comes here?
}
}
别的地方
public enum GrayAnimal {
WHALE,
ELEPHANT;
}
这怎么可能?我是否从Java请求过多?
+1不知道EnumSet。很酷的东西! – sfussenegger 2010-03-23 23:15:16
即将发布类似的答案..我觉得它更清洁,而不是返回布尔值。延伸也更容易。 +1 – 2010-03-23 23:16:51
这似乎是一个很好的。去尝试一下(并且接受它,以防万一它让我开心= P) – 2010-03-23 23:20:37