Java如何访问内部枚举类

public class Constant { ...... public enum Status { ERROR, WARNING, NORMAL } ...... } 

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

你可以在其他地方访问它

 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(); 

在您的代码中只需:

 Constant.Status.ERROR.toString(); 

由于之前没有提到过,在原始问题中, enum具有public访问修饰符,这意味着我们应该能够从任何地方执行Constant.Status.ERROR.toString() 。 如果它被设置为private那么它只能用于类: Constant 。 同样,如果没有修饰符(默认),它可以在同一个包中访问。