मेरे ऐप में, अगर इनपुट कुछ विशिष्ट 20 प्रविष्टियों से मेल खाता है तो मुझे शाखा बनाने की आवश्यकता है।जटिल अगर() या enum?
मैं एक समारोह करने के लिए
switch(dateRule.valueOf(input))
{
case is_on :
case is_not_on :
case is_before :
.
.
.
// function()
break;
}
लेकिन इनपुट तार हो जाएगा की तरह 'पर है', 'नहीं है एक enum
public enum dateRule { is_on, is_not_on, is_before,...}
और enum निरंतर पर एक स्विच का उपयोग के बारे में सोचा ',' शब्दों के बीच _ के बिना 'पहले' है। मैंने सीखा कि एक enum अंतरिक्ष युक्त स्थिरांक नहीं हो सकता है। शब्दों के बीच
1, का उपयोग करता है, तो बयान 20 संभव आदानों कि इनपुट पर एक लंबे अगर बयान की तरह
if(input.equals("is on") ||
input.equals("is not on") ||
input.equals("is before") ...) { // function() }
2, काम दे रही है सम्मिलित करने के लिए तुलना करने के लिए _:
संभव तरीके मैं बाहर कर सकता है लेकिन यहां तक कि अन्य इनपुट स्ट्रिंग्स जो इस 20 के तहत नहीं आती हैं, उनमें कई शब्द हो सकते हैं।
क्या इसे लागू करने का कोई बेहतर तरीका है?
जावा 7 में आप एक स्ट्रिंग पर बदल सकते हैं। –