जावा में संग्रह को अंतिम घोषित करने का क्या अर्थ है? क्या यह है कि इसमें कोई और तत्व जोड़ा जा सकता है? क्या यह है कि पहले से मौजूद तत्वों को बदला नहीं जा सकता है? क्या यह कुछ और है?जावा में संग्रह को अंतिम रूप देने के लिए इसका क्या अर्थ है?
उत्तर
नहीं। इसका मतलब यह है कि संदर्भ बदला नहीं जा सकता है।
final List list = new LinkedList();
....
list.add(someObject); //okay
list.remove(someObject); //okay
list = new LinkedList(); //not okay
list = refToSomeOtherList; //not okay
आप अंतिम और अपरिवर्तनीय वस्तुओं के बीच उलझन में हो रहे हैं।
final
-> आप संग्रह (ऑब्जेक्ट) में संदर्भ को नहीं बदल सकते हैं। आप को संदर्भ/ऑब्जेक्ट संदर्भ बिंदुओं को संशोधित कर सकते हैं। आप अभी भी संग्रह
immutable
-> को संदर्भ/ऑब्जेक्ट संदर्भ सामग्री की सामग्री को संशोधित नहीं कर सकते हैं। आप संग्रह में तत्व नहीं जोड़ सकते हैं।
आप ऐसा नहीं कर सकते, संदर्भ, FINAL
final ArrayList<Integer> list = new ArrayList<Integer>();
ArrayList<Integer> list2 = new ArrayList<Integer>();
list=list2;//ERROR
list = new ArrayList<Integer>();//ERROR
एक बार एक अंतिम चर असाइन किया गया है यह हमेशा एक ही मान है। एक अंतिम चर एक वस्तु के लिए एक संदर्भ रखती है, तो वस्तु के राज्य वस्तु पर कार्रवाई करके बदला जा सकता है, लेकिन चर हमेशा एक ही वस्तु के पास भेजेगा।
। आप च Collections.unmodifiableList के उपयोग के साथ अंतिम कीवर्ड गठबंधन, आप जीई behavi
final List fixedList = Collections.unmodifiableList(someList);
यह है के रूप में परिणाम है कि सूची में से fixedList बदला नहीं जा सकता इशारा किया। यह अभी भी someList संदर्भ के माध्यम से बदल किया जा सकता है (ताकि यकीन है कि यह इस asignment के बाद क्षेत्र से बाहर है या नहीं।)
अधिक सरल उदाहरण एक HashSet में इंद्रधनुष के रंगों को मिलाकर एक इंद्रधनुष वर्ग ले जा रहा है
public static class Rainbow {
/** The valid colors of the rainbow. */
public static final Set VALID_COLORS;
static {
Set temp = new HashSet();
temp.add(Color.red);
temp.add(Color.orange);
temp.add(Color.yellow);
temp.add(Color.green);
temp.add(Color.blue);
temp.add(Color.decode("#4B0082")); // indigo
temp.add(Color.decode("#8A2BE2")); // violet
VALID_COLORS = Collections.unmodifiableSet(temp);
}
/**
* Some demo method.
*/
public static final void someMethod() {
Set colors = RainbowBetter.VALID_COLORS;
colors.add(Color.black); // <= exception here
System.out.println(colors);
}
}
}
- 1. जूलिया में "अंतिम रूप देने" का क्या अर्थ है?
- 2. जावा में अंतिम रूप देने का उद्देश्य क्या है?
- 3. जावा "user.dir" संपत्ति - इसका क्या अर्थ है?
- 4. इसका क्या अर्थ है?
- 5. जावा को अंतिम रूप देने के लिए सर्वश्रेष्ठ अभ्यास (2005 या 2012) जावा के बराबर ब्लॉक
- 6. रचनाकारों को नाम देने में क्या अर्थ है
- 7. जूलिया में मॉड्यूल को अंतिम रूप देने के लिए सही तरीका क्या है?
- 8. इसका क्या अर्थ है "->"?
- 9. इसका क्या अर्थ है? (int &)
- 10. बैकस्लैश - इसका क्या अर्थ है?
- 11. java.lang.IleglegalStateException इसका क्या अर्थ है?
- 12. विध्वंसक, निपटान और विधि को अंतिम रूप देने के बीच
- 13. ":" (कोलन) - इसका क्या अर्थ है?
- 14. सी में शेलकोड - इसका क्या अर्थ है?
- 15. रुबी भाषा में इसका क्या अर्थ है?
- 16. प्रोलॉग में इसका क्या अर्थ है?
- 17. टीएफएस में असहज: इसका क्या अर्थ है?
- 18. इसका क्या अर्थ है जब java.util.Iterator.remove() विधि 'वैकल्पिक ऑपरेशन' है?
- 19. एकाधिक FROMS - इसका अर्थ क्या है
- 20. आईफोन प्रोग्रामिंग में इसका क्या अर्थ है?
- 21. 'सिस्टम भाषा' से इसका क्या अर्थ है?
- 22. टीसीपी कनेक्शन मंथन के लिए इसका क्या अर्थ है?
- 23. शून्य के बारे में भ्रम और इसका क्या अर्थ है।
- 24. ब्रेकपॉइंट स्थापित करने के लिए इसका क्या अर्थ है?
- 25. "computeValuesWithHarfbuzz - एंड्रॉइड 4 में एकल रन पर बल देने की आवश्यकता है": इसका क्या अर्थ है?
- 26. getClass() दस्तावेज़ों में "अभिव्यक्ति के स्थिर प्रकार के मिटाए जाने पर इसका क्या अर्थ है" इसका क्या अर्थ है?
- 27. टेक्स्ट.hashCode() और Interger.MAX_VALUE के लिए इसका क्या अर्थ है?
- 28. इसका क्या अर्थ है ?: * (int32 *) 0 = 0;
- 29. इसका क्या अर्थ है/64 आईपीवी 6
- 30. वालग्रिंड 'शोर', इसका क्या अर्थ है?
इसका मतलब है कि यह संदर्भ (सूची का) बदला नहीं जा सकता – MadProgrammer
यह भी देखें: [अंतिम ऐरेलिस्ट की भावना क्या है?] (http://stackoverflow.com/q/10750791/697449), [सूची फ़ील्ड को घोषित करना अंतिम कीवर्ड] (http://stackoverflow.com/q/13079365/697449), [जावा अंतिम संशोधक] (http://stackoverflow.com/q/4012167/697449) –