在课堂上,我需要定义传递给方法的不同动作。现在,所有实例都可以安全地共享这些动作,所以我认为我可以安全地使枚举静止。
但是在我看过的几乎所有例子中,嵌套的枚举永远不会变成静态的。那么,哪个是定义嵌套(私有)枚举的首选方法?不让它静止是否真的有意义?
public class MyClass {
private static enum Action {
READ("read"),
WRITE("write");
final String value;
Action(String value) {
this.value = value;
}
String getValue() {
return value;
}
}
// attributes, methods, constructors and so on
}
答案 0 :(得分:37)
Java Language Specification, section 8.9,声明:
嵌套枚举类型是隐式静态的。允许将嵌套的枚举类型显式声明为静态是允许的。
所以你可以,但你不必,而且没有任何区别。就个人而言,我认为我不会打扰,因为它无论如何都是隐含的。
答案 1 :(得分:4)
嵌套枚举类型是隐式静态的:)
答案 2 :(得分:4)
如果枚举是一个类的成员,则它是隐式静态的
答案 3 :(得分:1)
由于枚举本质上是静态的,因此在枚举中使用static-keyword时没有必要也没有区别。