使此私有枚举静态与否?

2022-09-02 11:35:30

在类中,我需要定义传递给方法的不同操作。现在,所有实例都可以安全地共享这些操作,因此我认为我可以安全地使枚举保持静态。

但在我见过的几乎所有例子中,嵌套枚举永远不会变成静态的。那么,定义嵌套(私有)枚举的首选方法是什么?不让它保持静态真的有意义吗?

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
}

答案 1

Java 语言规范第 8.9 节指出:

嵌套枚举类型是隐式静态的。允许将嵌套枚举类型显式声明为静态。

所以你可以,但你不必这样做,这不会有什么区别。就个人而言,我不认为我会打扰,因为它无论如何都是隐含的。


答案 2

嵌套枚举类型是隐式静态:)