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
ดูเหมือนจะทำอะไรบางอย่างที่คล้ายกันในเรื่องเกี่ยวกับ
MyObject
จากclone()
มากกว่าObject
- นี้เอาปัญหานี้ทั้งหมด ไม่แนะนำให้ใช้ต่อไปclone()
(รายการ Java ที่มีประสิทธิภาพ # 11)
this.clone()
อยู่บนวัตถุโปรแกรมเมอร์โดยเฉพาะในคืนวันพุธหลังจากการปล่อยตัวของอ. ขออภัย แต่ฉันต้องเขียนความคิดเห็นนี้ .. ทำไมไม่สามารถสมาร์ท IDE เพียงแค่แก้ไขข้อผิดพลาดทั้งหมดสำหรับเรา LOL