में करता है पर बग के मैंने एलएचएस [टिकट (स्थिति == ईस्टैटस.ओके) पर एनम का उपयोग करने की कोशिश की], मुझे कुछ समय संकलित समय त्रुटि मिलती है:
BuildError: सख्त-मोड का उपयोग विधि हल करने में असमर्थ: == अभिव्यक्ति स्थिति का विश्लेषण करने EStatus.OK त्रुटि असमर्थ ....
समाधान:
नियम एलएचएस में, हम तुलना करने के लिए है एक स्थिर मूल्य के साथ ... उदाहरण के लिए: उपयोगकर्ता: उपयोगकर्ता (आयु> 60) - यहां हम निरंतर मूल्य 60 के साथ उम्र की तुलना कर रहे हैं।
तो एनम, टिकट (स्थिति == EStatus.OK) का उपयोग करने के लिए ... स्थिति के साथ इसकी तुलना करने के लिए मुझे EStatus.OK के स्थान पर कुछ स्थिरता का उपयोग करना पड़ा। इस कारण से, मैंने एनम में एक स्थिर विधि का उपयोग किया।
तो, शासन के एलएचएस अब की तरह दिखता है: टिकट (स्थिति == EStatus.getEStatus (1))
और EStatus enum निम्नलिखित की तरह है:
सार्वजनिक enum EStatus {
// you can use values other than int also
OK(1),
ERROR(2);
private int value;
ईस्टैटस (int संख्या) { यह .value = संख्या; }
public int valueOf()
{
return this.value;
}
public static EStatus getEStatus(int value){
EStatus eStatus = null;
for(EStatus e : EStatus.values()){
if(e.valueOf() == value){
eStatus = d;
break;
}
}
return eStatus;
}
}
मैं इस JDK का उपयोग कर 1.6 और दोनों लिनक्स और विंडोज वातावरण में परीक्षण किया है।
कोडिंग का आनंद लें!
स्रोत
2012-09-13 11:02:02
धन्यवाद के रूप में नियम लिख सकते हैं। अब यह मेरे लिए भी काम करता है। यह अजीब बात है, क्योंकि मैंने इसे पोस्ट करने से पहले इस मुद्दे को कई बार सत्यापित किया था। सबसे संभावित कुछ फिसल गया ... – Calin