有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

Java如何访问内部枚举类

public class Constant {

  ......

  public enum Status {
    ERROR,
    WARNING,
    NORMAL
  }

  ......

}

编译之后,我得到了一个名为Constant$Status的类文件。类。问题是,如何访问枚举值。例如,我想获取错误状态的字符串表示形式


共 (3) 个答案

  1. # 1 楼答案

    您可以在其他地方访问它,如

    import package.name.Constant;
    //...
    Constant.Status foo = Constant.Status.ERROR;
    

    或者

    import package.name.Constant;
    import package.name.Constant.Status;
    //...
    Status foo = Status.ERROR;
    

    要获取任何enum元素的声明名称,请使用^{}

    Status foo = ...;
    String fooName = foo.name();
    
  2. # 2 楼答案

    因为之前没有提到过这一点,所以在原始问题中enumpublic访问修饰符,这意味着我们应该能够从任何地方执行Constant.Status.ERROR.toString()。如果将其设置为private,则它将仅对类Constant可用。同样,在没有修改器的情况下,它也可以在同一个包中访问(默认)

  3. # 3 楼答案

    在代码中,只需执行以下操作:

    Constant.Status.ERROR.toString();