java - How to implement equals and hashcode for enum classes -


मेरे पास एक इंटरफ़ेस नाम प्रकार है

  सार्वजनिक इंटरफेस प्रकार {public string getName (); }   

दो enum वर्ग इस इंटरफ़ेस का विस्तार कर रहे हैं जैसे

  सार्वजनिक enum अल्फाटाइप लागू होते हैं प्रकार अल्फा ("अल्फा"), सामान्य ("सामान्य") निजी स्ट्रिंग का नाम; निजी अल्फाटाइप (स्ट्रिंग नेम) {this.name = name; } @ ओवरराइड सार्वजनिक स्ट्रिंग getName () {वापसी का नाम; }} सार्वजनिक एन्यूम बीटाटाइप लागू होते हैं प्रकार {बीटा ("बीटा"), आम ("सामान्य") निजी स्ट्रिंग नाम; निजी बीटा टाइप (स्ट्रिंग नेम) {this.name = name; } @ ओवरराइड सार्वजनिक स्ट्रिंग getName () {वापसी का नाम; }}   

आवश्यकता का एक नक्शा होता है जो कि मानचित्र और लेफ्टिनेंट; प्रकार, ऑब्जेक्ट & gt; नक्शा;

बराबर और हैशोड को लागू करने के तरीके, जैसे नक्शा कुंजी आम एन्यूम मानों के लिए भी अद्वितीय हैं?

वर्ग java.lang.Enum दोनों बराबर () और हैशोड () के रूप में घोषित करें अंतिम , इस प्रकार आपको कंपाइलर त्रुटियों को ओवरराइड करने की कोशिश करनी होगी।

यह कहा जा रहा है कि, जैसा कि आप चाहें, इसके बाद के संस्करण काम करते हैं - अगर आप अल्फाटेप्स। आम और BetaTypes.Common को Map < / कोड> आपको दो तत्वों के साथ एक नक्शा मिलेगा:

  सार्वजनिक स्थिर शून्य मुख्य (स्ट्रिंग [] आर्ग्स) अपवाद {मानचित्र & lt; प्रकार, ऑब्जेक्ट & gt; नक्शा = नया हैशमॉप & lt; प्रकार, ऑब्जेक्ट & gt; (); map.put (अल्फाटाइप्स। आम, "बी"); Map.put (BetaTypes.Common, "b"); System.out.println ("size =" + map.size ()); }   

आकार = 2

चीयर्स,

Comments

Popular posts from this blog

Java - Error: no suitable method found for add(int, java.lang.String) -

java - JPA TypedQuery: Parameter value element did not match expected type -

c++ - static template member variable has internal linkage but is not defined -