2011-09-14 17 views
17

एक कक्षा में, मुझे एक विधि में पारित विभिन्न कार्यों को परिभाषित करने की आवश्यकता है। अब, सभी उदाहरण सुरक्षित रूप से इन क्रियाओं को साझा कर सकते हैं, इसलिए मैंने सोचा कि मैं सुरक्षित रूप से enum static बना सकता हूं।इस निजी enum स्थिर या नहीं बनाओ?

लेकिन मैंने देखा है कि लगभग सभी उदाहरणों में, नेस्टेड एनम कभी स्थिर नहीं होता है। तो, एक घोंसला (निजी) 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

नेस्टेड enum प्रकार परोक्ष स्थिर :)

4

एक enum एक वर्ग का एक सदस्य है, तो हैं, यह परोक्ष स्थिर है

संबंधित मुद्दे