Как правильно переопределить метод клонирования?
Мне нужно реализовать глубокий клон в одном из моих объектов, который не имеет суперкласса.
Каков наилучший способ справиться с проверенным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, чтобы узнать, есть ли какие-то другие идеи, которые я могу включить. Спасибо!