Java how to access inner enum class

后端 未结 3 1108
攒了一身酷
攒了一身酷 2021-02-06 23:24
public class Constant {

  ......

  public enum Status {
    ERROR,
    WARNING,
    NORMAL
  }

  ......

}

After compiling I got a class file named

相关标签:
3条回答
  • 2021-02-06 23:34

    In your code just do:

    Constant.Status.ERROR.toString();
    
    0 讨论(0)
  • 2021-02-06 23:45

    You'll be able to access it elsewhere like

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

    or,

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

    To get the declared name of any enum element, use Enum#name():

    Status foo = ...;
    String fooName = foo.name();
    
    0 讨论(0)
  • 2021-02-06 23:45

    Since this was not mentioned before, in the original question the enum has the public access modifier which means we should be able to do Constant.Status.ERROR.toString() from anywhere. If it was set to private it would have been available only to the class: Constant. Similarly it is accessible within the same package in case of no modifier (default).

    0 讨论(0)
提交回复
热议问题