আমার কোডটি টাইপ করার সময় আমার আইডিই ( নেটবিয়ান ) টাইপ আমার চেক Collectionsকরে। তবে, কেন আমাকে প্রত্যাবর্তিত অবজেক্টটি ফেলে দিতে হবে Object.clone()? যা ঠিক আছে। কোন ক্ষতি কোন ফাউল। কিন্তু তবুও, আমি বুঝতে পারি না।
টাইপ চেকিং, castালাই ছাড়াই, প্রত্যাশিত বস্তুটি Object.clone()সম্ভব নয়? জেনেরিক্স ফ্রেমওয়ার্ক আমার মনে আইডিই পরীক্ষা পারে তোলে টাইপ "ডান পাশ বস্তুর উল্লেখ = ভোটদান যখন আমি টাইপিং am ছাড়া" মার্ক? আমি পাই না।
সংযোজন
আমার ব্যবহারের কেসটি কেবলমাত্র আমার একটি ব্যক্তিগত Calendarক্ষেত্র ছিল, পাবডেট । আমি লিখতে যাচ্ছি:
Calendar getPubdate() {
return pubdate;
}
তবে একটি ঝুঁকি রয়েছে যে আমন্ত্রণকারী আমার পাবডেটটি সংশোধন করতে পারে , তাই আমি একটি অনুলিপি ফিরিয়ে দিয়েছি:
Calendar getPubdate() {
return (Calendar) pubdate.clone();
}
তারপরে, আমি ভাবলাম কেন আমাকে কাস্ট করা দরকার pubdate.clone()। পদ্ধতিটির স্বাক্ষরের ঠিক সেখানে টাইপ রয়েছে। নেটবিয়ানদের এটি খুঁজে বের করতে সক্ষম হওয়া উচিত। এবং নেটবিনগুলি দেখে মনে হয়েছে এটি নিয়েও তেমন কিছু করছে Collections।
MyObjectআসার পরামর্শ দেওয়া হয় - এটি এই পুরো সমস্যাটি সরিয়ে দেয়। এটি কখনই ব্যবহার না করার পরামর্শ দেওয়া হয় (কার্যকর জাভা আইটেম # 11)। clone()Objectclone()
this.clone()প্রোগ্রামার অবজেক্টে, বিশেষত মঙ্গলবার প্রকাশের পরে বুধবার রাতে। দুঃখিত তবে আমাকে এই মন্তব্যটি লিখতে হবে .. কেন স্মার্ট আইডিই আমাদের জন্য সমস্ত বাগ ঠিক করতে পারে না LOL