जावा राज्यों प्रारंभिक मूल्य की क्रमसूचक कि जब मैं इस तरह की एक गणन बनाने 0. मैं मान सकते हैं यह है कि:क्या मुझे लगता है कि जावा गणना 1 से स्वतः वृद्धि हुई है?
public enum Direction {MONDAY, TUESDAY, WEDNESDAY, THURSDAY, ...}
TUESDAY
की क्रमसूचक हमेशा होता है कि 1, कि WEDNESDAY
हमेशा 2 की, .. ।?
मैं थोड़ा और विशिष्ट होगा। मैं एक गणना घोषित कर रहा हूं:
public enum Direction {UP,RIGHT,DOWN,LEFT}
अब 90 डिग्री (घड़ी की दिशा) बारी करने के लिए एक विधि है।
switch (direction) {
case LEFT:newdirection = Direction.UP;
break;
etc...
}
ऑर्डिनल्स उपयोग करने के लिए एक जोड़े को लाभ कर रहे हैं:
direction = Direction.values()[direction.ordinal()+1 % Direction.values().length];
मैं ऑर्डिनल्स का उपयोग नहीं करेंगे, तो मैं स्विच बयान या शर्तों का उपयोग करना होगा: यह ऑर्डिनल्स साथ एक पंक्ति है
DOWN_LEFT
के लिए) जोड़ा जाता है कार्यान्वयन जरूरी है अगर आप सही जगहपर नई दिशा डाल आपको क्या लगता है बदलने की जरूरत नहीं है?
यदि यह महत्वपूर्ण है (उदा। कस्टम सीरियलाइजेशन के लिए), तो आप किसी भी स्पष्ट मैपिंग के साथ बेहतर होंगे। बस 'एनमैप <दिशा, इंटीजर>' बनाएं या 'दिशा' एक 'int' फ़ील्ड दें। –
मैं इसे साफ रखूंगा। यह स्कूल के लिए है, लेकिन तकनीकी रूप से हमने अभी तक गणनाओं का उपयोग नहीं किया है, और EnumMap शायद थोड़ा चरम होगा क्योंकि हमने अभी तक सरणी के बारे में भी नहीं सीखा है: डी। – Fatso
स्वच्छ की आपकी धारणा थोड़ा गुमराह है :-)। Ordinal पर निर्भर इस कोड को एक बेहद गन्दा तरीका होगा। –