如何正确覆盖克隆方法?
我需要在我的一个对象中实现一个深度克隆,它没有超类。
处理超类抛出的检查的最佳方法是什么(即)?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社区,看看我是否可以包括任何其他见解。谢谢!