public class Constant {
......
public enum Status {
ERROR,
WARNING,
NORMAL
}
......
}
After compiling I got a class file named
In your code just do:
Constant.Status.ERROR.toString();
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();
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).