क्या जावा में enums पर ==
का उपयोग करना ठीक है, या मुझे .equals()
का उपयोग करने की आवश्यकता है? मेरे परीक्षण में, ==
हमेशा काम करता है, लेकिन मुझे यकीन नहीं है कि मुझे इसकी गारंटी है या नहीं। विशेष रूप से, एनम पर .clone()
विधि नहीं है, इसलिए मुझे नहीं पता कि एनम प्राप्त करना संभव है जिसके लिए .equals()
==
से भिन्न मान लौटाएगा।क्या जावा में enums पर == का उपयोग करना ठीक है?
उदाहरण के लिए, यह ठीक है:
public int round(RoundingMode roundingMode) {
if(roundingMode == RoundingMode.HALF_UP) {
//do something
} else if (roundingMode == RoundingMode.HALF_EVEN) {
//do something
}
//etc
}
या मैं इसे इस तरह लिखने के लिए की जरूरत है:
public int round(RoundingMode roundingMode) {
if(roundingMode.equals(RoundingMode.HALF_UP)) {
//do something
} else if (roundingMode.equals(RoundingMode.HALF_EVEN)) {
//do something
}
//etc
}
के संभावित डुप्लिकेट [जावा enum सदस्यों की तुलना: == या इसके बराबर()] (http://stackoverflow.com/questions/1750435/comparing-java-enum-members -या-बराबर) – assylias
@assylias यह सवाल पहले आया था। शायद ♦ ध्यान के लिए ध्वज, क्योंकि मुझे सच में यकीन नहीं है कि दोनों को विलय किया जाना चाहिए। –
@ मैटबॉल मुझे लगता है कि जेएलएस का उद्धरण आपके प्रश्न का उत्तर सबसे अच्छा जवाब है, इसलिए मैंने इसे बंद करना चुना है। – assylias