Java如何访问内部枚举类

时间:2011-06-08 15:02:05

标签: java enums

public class Constant {

  ......

  public enum Status {
    ERROR,
    WARNING,
    NORMAL
  }

  ......

}

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

3 个答案:

答案 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。同样,如果没有修饰符(默认),它可以在同一个包中访问。