如何在Scala中克隆对象?

ric*_*bbo 16 clone scala

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

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

Dan*_*ral 15

如果该复杂对象是可变的或包含可变部分,那么解决方案与Java中的相同.检查有关它的Java问题和帖子并执行此操作.

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