मेरे पास 4 मानों के साथ एक enum है, और मेरे पास एक विधि हस्ताक्षर है जो एक enum मान स्वीकार करता है। मैं कुछ enum मानों के साथ कुछ करने में सक्षम होना चाहता हूं जो कुछ करने के लिए तर्क के रूप में पारित नहीं किया गया है()।एक enum मानों के सबसेट के माध्यम से लूप
public void doSomething(EnumThing thing){
EnumThing[] thingValues = EnumThing.values();
List<EnumThing> valuesNotPassedAsArg = new ArrayList<EnumThing>();
for(EnumThing th : thingValues){
valuesNotPassedAsArg.add(th);
}
valuesNotPassAsArg.remove(thing);
//here I would loop through all valuesNotPassAsArg and do something with them
}
public enum EnumThing{
SOMETHING, SOMETHINGELSE, ANOTHERTHING;
}
क्या ऐसा करने का कोई क्लीनर तरीका है? मुझे लगता है जैसे लूप को चीज़ से आइटम प्राप्त करने के लिए वैल्यूज़ सरणी अनिवार्य है।
'EnumThing.values (); 'सभी enum मान वापस कर देगा, और किसी भी प्रकार का सबसेट नहीं। तो, आप वास्तव में क्या करना चाहते हैं? थोड़ा और बताएं। सभी enum मानों से –
मैं तर्क के रूप में पारित enum मान को हटा रहा हूँ, और फिर मैं शेष मूल्यों के माध्यम से लूप करना चाहता हूँ। – andersra
और मैंने सोचा कि आप पहले ही जानते थे कि कैसे एक ऐरे, या संग्रह के माध्यम से लूप करना है। –