4
ถ้า IDE ของฉันฉลาดเหลือเกินฉันจะต้องทำการ“ clone ()” ทำไม?
My IDE ( NetBeans ) ประเภทของฉันตรวจสอบCollectionsขณะที่ฉันพิมพ์รหัส แต่ทำไมฉันต้องโยนวัตถุคืนกลับมาObject.clone()? ซึ่งเป็นเรื่องปกติ ไม่เป็นอันตรายไม่มีเหม็น แต่ถึงกระนั้นฉันไม่เข้าใจ การตรวจสอบประเภทObject.clone()เป็นไปได้หรือไม่โดยไม่ต้องทำการคัดลอกวัตถุที่ส่งคืนเป็นไปไม่ได้? genericsกรอบทำให้ฉันคิดว่า IDE สามารถตรวจสอบประเภทของการอ้างอิงวัตถุบนด้านขวาของ " =เครื่องหมาย" โดยไม่ต้องหล่อในขณะที่ฉันพิมพ์? ฉันไม่เข้าใจ ภาคผนวก กรณีการใช้งานของฉันเป็นเพียงแค่ว่าผมมีความส่วนตัวCalendarฟิลด์pubDate ฉันกำลังจะเขียน: Calendar getPubdate() { return pubdate; } แต่มีความเสี่ยงที่ผู้บุกรุกสามารถแก้ไขpubdateของฉันได้ดังนั้นฉันจึงส่งสำเนา: Calendar getPubdate() { return (Calendar) pubdate.clone(); } pubdate.clone()แล้วฉันสงสัยว่าทำไมผมต้องหล่อ ลายเซ็นวิธีมีประเภทที่นั่น NetBeansน่าจะสามารถเข้าใจได้ และNetBeansCollectionsดูเหมือนจะทำอะไรบางอย่างที่คล้ายกันในเรื่องเกี่ยวกับ