Как правильно переопределить метод клонирования?

Мне нужно реализовать глубокий клон в одном из моих объектов, который не имеет суперкласса.

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

Ответы на вопрос(9)

Ваш ответ на вопрос