Java如何访问内部枚举类

Ter*_* Li 27 java enums

public class Constant {

  ......

  public enum Status {
    ERROR,
    WARNING,
    NORMAL
  }

  ......

}
Run Code Online (Sandbox Code Playgroud)

编译后,我得到了一个名为Constant $ Status.class的类文件.问题是,如何访问枚举值.例如,我想获得ERROR状态的字符串表示.

Mat*_*all 38

你可以在其他地方访问它

import package.name.Constant;
//...
Constant.Status foo = Constant.Status.ERROR;
Run Code Online (Sandbox Code Playgroud)

要么,

import package.name.Constant;
import package.name.Constant.Status;
//...
Status foo = Status.ERROR;
Run Code Online (Sandbox Code Playgroud)

要获取任何enum元素的声明名称,请使用Enum#name():

Status foo = ...;
String fooName = foo.name();
Run Code Online (Sandbox Code Playgroud)

  • 如果枚举是类的成员,则它是隐式静态的 - 不需要static关键字. (12认同)

pla*_*nes 6

在您的代码中只需:

Constant.Status.ERROR.toString();
Run Code Online (Sandbox Code Playgroud)