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