इससे पहले, मैं अपने लेगनो एनमों को बस के रूप में परिभाषित करता था:
NO_LEG, LEG_ONE, LEG_TWO
और कॉल करके return LegNo.values()[i];
, मैं प्रत्येक एनम के साथ जुड़े मूल्य प्राप्त करने में सक्षम था।
लेकिन अब मैंने तय कर लिया है कि मैं चाहता हूं कि LegNo
एनम NO_LEG
0 के बजाय इंट -1 हो, इसलिए मैंने एक निजी कंस्ट्रक्टर का उपयोग इनिशियलाइज़ करने और उसका मान सेट करने का निर्णय लिया
NO_LEG(-1), LEG_ONE(1), LEG_TWO(2);
private LegNo(final int leg) { legNo = leg; }
अब केवल एक चीज यह है कि क्योंकि मैं इसे इस तरह से कर रहा हूं कि यह values()
विधि NO_LEG
एनम के लिए काम नहीं करेगी । मुझे इंट से जुड़ी हुई एनम कैसे मिलती है? क्या केस स्विच स्टेटमेंट का उपयोग करने या इफिस-हनीफ के अलावा ऐसा करने का कोई कुशल तरीका है
मैं बहुत सारे एसओ सवालों को एनम से अंतर मान प्राप्त करने के लिए देख सकता हूं, लेकिन मैं इसके बाद हूं।