मेरा आईडीई ( नेटबीन्स ) टाइप Collections
करते समय मेरी जांच करता है कि मैं कोड लिख रहा हूं। लेकिन फिर, मुझे लौटी हुई वस्तु को क्यों डालना है Object.clone()
? जो ठीक है। कोई नुकसान नहीं कोई माफी नहीं। लेकिन फिर भी, मुझे समझ नहीं आया।
क्या टाइपिंग की जाँच हो रही है, बिना ढलाई के, लौटी हुई वस्तु Object.clone()
संभव नहीं है? जेनरिक ढांचे मुझे लगता है आईडीई जांच कर सकता है बनाता है प्रकार "के दाईं ओर स्थित वस्तु संदर्भ के = कास्टिंग, जबकि मैं टाइपिंग कर रहा हूँ बिना" निशान? मुझे नहीं मिला।
परिशिष्ट
मेरा उपयोग मामला सिर्फ यह था कि मेरे पास एक निजी Calendar
क्षेत्र, पबडेट था । मैं लिखने जा रहा था:
Calendar getPubdate() {
return pubdate;
}
लेकिन एक जोखिम है कि आक्रमणकारी मेरे यौवन को संशोधित कर सकता है , इसलिए मैंने एक प्रति लौटा दी:
Calendar getPubdate() {
return (Calendar) pubdate.clone();
}
फिर, मैंने सोचा कि मुझे कास्ट करने की आवश्यकता क्यों है pubdate.clone()
। विधि हस्ताक्षर का अधिकार वहाँ है। नेटबीन्स को यह पता लगाने में सक्षम होना चाहिए कि एक बाहर। और NetBeans के संबंध में ऐसा ही कुछ लग रहा था Collections
।
MyObject
से clone()
बजाय Object
- यह इस पूरे मुद्दे को निकाल देता है। इसे आगे कभी उपयोग न करने की सलाह दी जाती है clone()
(प्रभावी जावा आइटम # 11)।
this.clone()
कि प्रोग्रामर ऑब्जेक्ट पर है, विशेष रूप से मंगल की रात में तुए की रिहाई के बाद। क्षमा करें, लेकिन मुझे यह टिप्पणी लिखनी है। क्यों स्मार्ट आईडीई हमारे लिए सभी बगों को ठीक नहीं करता है LOL