Как клонировать объекты в Scala? - PullRequest
16 голосов
/ 21 июня 2011

Недавно возникли проблемы с копированием сложного объекта. Его внутренняя организация состоит из нескольких вложенных объектов. Я заметил, что clone() недоступен.

Как лучше всего решить проблему?

Ответы [ 2 ]

15 голосов
/ 21 июня 2011

Если этот сложный объект является изменяемым или содержит изменяемые части, то решение такое же, как в Java. Проверьте Java вопросы и посты об этом и сделайте это.

Если все неизменно, то вам не нужно и не должно ничего клонировать. В лучшем случае вы должны сделать мелкую копию объекта, изменяя только те поля, которые нужно изменить, и, в худшем случае, вы используете что-то вроде линз или молний, ​​чтобы скопировать какой-то глубокий объект и распространить изменение вверх. Смотри вопросы на Scala о линзах и молниях для этого.

1 голос
/ 23 октября 2012

Я получил пример кода, который работает для клонирования объектов изменяемого состояния здесь: Реализация '.clone' в Scala

...