2011-09-14 4 views
17

クラスでは、メソッドに渡されるさまざまなアクションを定義する必要があります。さて、すべてのインスタンスがこれらのアクションを安全に共有できるので、安全にenumを静的にすることができたと思いました。このプライベート列挙型を静的にするかどうかを確認します。

しかし、ほとんどすべての例では、ネストされた列挙型は決して静的にされません。だから、ネストされた(プライベート)列挙型を定義するのが好ましい方法ですか?静的にしないのは実際には意味がありますか?

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 
} 

答えて

35

Java Language Specification, section 8.9は、状態:

ネストされたenum型は暗黙的に静的です。ネストされた列挙型を静的に明示的に宣言することは許されています。

でも、そうする必要はありません。違いはありません。個人的には、とにかく暗黙のうちに、私は気にしないと思います。

4

ネスト列挙型が列挙クラスのメンバーである場合

4

:)暗黙的に静的であり、それは暗黙的に静的である

関連する問題