Як створити клон об'єкта в java

п.с. в моєму випадку створюється об'єкт, потім з ним проводяться різні обчислення. Після них створюється клон поточного стану і виробляються подальші обчислення над першим об'єктом. А клон потрібен лише для зберігання "первісного" стану, щоб проводити подальші обчислення щодо цього стану.

Олександр. не знаю що відбувається у Вашому коді, я додав в об'єкт який потрібно клонувати не примітивною тип і він так само клонувати, зберіг стан.

Олександр. ви всередині clone робить setValue на контрольний тип => посилання у вас в двох об'єктах однакові. У такому випадку потрібно клонувати робити deep clone. Якщо вам не важлива критично швидкість і об'єкт Серіалізуемое, то використовуйте наприклад commons.apache.org/proper/commons-lang/javadocs/ap. . наскільки я пам'ятаю там буде зробити deep clone. Але якщо ви хочете швидкий, клон вам потрібно зробити приблизно так

User clone () User temp = (User) super.clone ();
temp.setValue (value.clone ());
return temp;
>

DR_Demons. ех, навіть не знаю як би так видерти шматок коду, яка не клонується. наклепав в нетбінсе проект приблизно з такою ж структурою, як у робочому проекті. У ньому знову змінні перепрісваіваются =) wxmaper.ru/temp/JavaApplication9.zip (pastebin.com/8bjcSdsc)

У прикладі створюється 2 клону (спочатку думав проблема в тому, що я клонований об'єкт зберігав в клонують об'єкті). Потім за таймером в найперший об'єкт заносяться зміни, і вони тут же виявляються в обох клонованих об'єктах.