Java:匿名枚举?

Ric*_*ket 20 java

Java是否有匿名枚举的可能性?

例如,我希望我的类有一个变量,其值可以是5种不同的设置之一.显然,变量应该是枚举.但这是使用特定枚举的唯一地方.通常我会在变量上方声明一个枚举类型,然后将变量声明为该类型,但我想知道是否有更简洁的方法.Java是否支持匿名枚举?

例:

public class Test {
    public enum Option {
        FirstOption,
        SecondOption,
        ThirdOption
    }
    Option option;
}
Run Code Online (Sandbox Code Playgroud)

有没有办法避免声明public enum Option,而只是简单地允许选项变量设置为FirstOption,SecondOption或ThirdOption而没有"Option"类型的概念?

cle*_*tus 21

没有Java不支持匿名enums.

只需在类中声明它们没有外部可见性:

public class Test {
  private static enum Option {
    FirstOption,
    SecondOption,
    ThirdOption
  }

  Option option;
}
Run Code Online (Sandbox Code Playgroud)