我几天前提出了类似的问题,但现在我有了新的要求,新的挑战=).像往常一样,一旦我不想解释特定领域的东西,我就会将动物枚举用于教学目的
我有一个动物的基本枚举,整个动物园都使用它(我可以添加东西,但必须保持兼容性):
public enum Animal {
DOG,
ELEPHANT,
WHALE,
SHRIMP,
BIRD,
GIRAFFE;
}
Run Code Online (Sandbox Code Playgroud)
我需要将它们归类为几个不相关的类别,如灰色动物(鲸鱼(我的鲸鱼是灰色的)和大象),小动物(鸟,虾和狗),海洋动物(鲸鱼和虾).
我可以像我之前的问题中所建议的那样添加很多布尔值,比如isGray,isSmall和isFromSea,但是我想要一种方法,我可以把它保存在其他地方(所以我的枚举不需要知道多少).就像是:
public enum Animal {
DOG,
ELEPHANT,
WHALE,
SHRIMP,
BIRD,
GIRAFFE;
public boolean isGray() {
// What comes here?
}
}
Run Code Online (Sandbox Code Playgroud)
别的地方
public enum GrayAnimal {
WHALE,
ELEPHANT;
}
Run Code Online (Sandbox Code Playgroud)
这怎么可能?我是否要求Java过多?
您可以创建一个方法
Set<Animal> grayAnimals(){
return EnumSet.of(Animal.WHALE, Animal.ELEPHANT);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
789 次 |
| 最近记录: |