相关疑难解决方法(0)

为什么枚举有一个包私有构造函数?

由于枚举构造函数只能由其常量调用,为什么它允许是包私有的?

java enums package-private

55
推荐指数
2
解决办法
1万
查看次数

Java枚举:从其他枚举中收集信息

我几天前提出了类似的问题,但现在我有了新的要求,新的挑战=).像往常一样,一旦我不想解释特定领域的东西,我就会将动物枚举用于教学目的

我有一个动物的基本枚举,整个动物园都使用它(我可以添加东西,但必须保持兼容性):

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过多?

java enums

3
推荐指数
1
解决办法
789
查看次数

标签 统计

enums ×2

java ×2

package-private ×1