पहले मैं बताता हूं कि मैं सी # में एनमों से अधिक परिचित हूं और ऐसा लगता है जैसे जावा में एनम काफी गड़बड़ है।
जैसा कि आप देख सकते हैं, मैं अपने अगले उदाहरण में एक स्विच स्टेटमेंट @ enums का उपयोग करने की कोशिश कर रहा हूं लेकिन मुझे हमेशा एक त्रुटि मिलती है कि मैं क्या कर रहा हूं।
मुझे प्राप्त होने वाली त्रुटि है:
योग्य केस लेबल
SomeClass.AnotherClass.MyEnum.VALUE_A
को अयोग्य एनुम स्थिरांक से बदला जाना चाहिएVALUE_A
बात यह है कि मैं त्रुटि को काफी समझता हूं, लेकिन मैं केवल VALUE_A नहीं लिख सकता, क्योंकि एनम एक अन्य उप-वर्ग में स्थित है। क्या इस समस्या को हल करने का कोई तरीका है? और यह जावा में क्यों हो रहा है?
//Main Class
public class SomeClass {
//Sub-Class
public static class AnotherClass {
public enum MyEnum {
VALUE_A, VALUE_B
}
public MyEnum myEnum;
}
public void someMethod() {
MyEnum enumExample //...
switch (enumExample) {
case AnotherClass.MyEnum.VALUE_A: { <-- error on this line
//..
break;
}
}
}
}
Enum
हैं बेहद आसान है एक बार आप उनमें से लटका मिलता है - सब एक मेस में नहीं। वे अन्य प्लेटफॉर्मों पर देखे गए सरल एन्यूम्स (केवल एक लेबल पूर्णांक मान) की तुलना में बहुत अधिक लचीले और व्यावहारिक हैं। ओरेकल ट्यूटोरियल देखें । अनुकूलितSet
/Map
कार्यान्वयन की खोज करें:EnumSet
औरEnumMap
।