ฉันจำเป็นต้องใช้การโคลนระดับลึกในวัตถุของฉันซึ่งไม่มีชั้นยอด
วิธีใดที่ดีที่สุดในการจัดการกับการตรวจสอบที่CloneNotSupportedException
ถูกโยนโดยซูเปอร์คลาส (ซึ่งคือObject
)?
เพื่อนร่วมงานแนะนำให้ฉันจัดการด้วยวิธีต่อไปนี้:
@Override
public MyObject clone()
{
MyObject foo;
try
{
foo = (MyObject) super.clone();
}
catch (CloneNotSupportedException e)
{
throw new Error();
}
// Deep clone member fields here
return foo;
}
นี่ดูเหมือนจะเป็นวิธีแก้ปัญหาที่ดีสำหรับฉัน แต่ฉันต้องการเผยแพร่ให้ชุมชน StackOverflow ดูว่ามีข้อมูลเชิงลึกอื่น ๆ ที่ฉันสามารถรวมไว้ได้หรือไม่ ขอบคุณ!
Cloneable
โยนAssertionError
มากกว่าธรรมดาError
ก็เป็นการแสดงออกมากกว่า