public class Constant {
......
public enum Status {
ERROR,
WARNING,
NORMAL
}
......
}
编译完成后,我得到了一个名为 Constant $ Status.class 的类文件。问题是,如何访问枚举值。例如,我想获得ERROR状态的字符串表示。
答案 0 :(得分:38)
你可以在其他地方访问它,比如
import package.name.Constant;
//...
Constant.Status foo = Constant.Status.ERROR;
,或者
import package.name.Constant;
import package.name.Constant.Status;
//...
Status foo = Status.ERROR;
要获取任何enum
元素的声明名称,请使用Enum#name()
:
Status foo = ...;
String fooName = foo.name();
答案 1 :(得分:6)
在你的代码中只需:
Constant.Status.ERROR.toString();
答案 2 :(得分:1)
由于之前未提及此问题,因此在原始问题中,enum
具有public
访问修饰符,这意味着我们应该能够从任何地方执行Constant.Status.ERROR.toString()
。如果它设置为private
,则只有该类可用:Constant
。同样,如果没有修饰符(默认),它可以在同一个包中访问。