Подтвердить что ты не робот

Как клонировать объекты в Scala?

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

Какое наилучшее решение проблемы?

4b9b3361

Ответ 1

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

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

Ответ 2

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