如何在Scala中克隆对象?

时间:2011-06-20 21:00:19

标签: scala clone

最近有一些复制对象的问题。它的内部组织由几个嵌套对象组成。我注意到clone()不可用。

解决问题的最佳解决方案是什么?

2 个答案:

答案 0 :(得分:15)

如果该复杂对象是可变的或包含可变部分,则解决方案与Java中的相同。检查Java问题&关于它的帖子,并做到这一点。

如果一切都是不可变的,那么你不需要也不应该克隆任何东西。最好的情况是,你应该制作一个浅层的对象副本,只更改需要更改的字段,最坏的情况是,使用像镜头或拉链这样的东西来复制一些深层对象并向上传播更改。请参阅Scala关于镜片和拉链的问题。

答案 1 :(得分:1)

我得到了一个示例代码,用于克隆可变状态对象:Implementing '.clone' in Scala