什么是深克隆(复制)一个可变斯卡拉对象最简单的方法?
Answer 1:
既然要深度复制的最简单方法Scala的对象,而不是最快的,你可以随时序列化对象,前提是它的序列化,然后反序列化回来。 下面的代码只有当编译,而不是在REPL运行。
def deepCopy[A](a: A)(implicit m: reflect.Manifest[A]): A =
util.Marshal.load[A](util.Marshal.dump(a))
val o1 = new Something(...) // "Something" has to be serializable
val o2 = deepCopy(o1)
Answer 2:
特定Java的解决方案(这应该工作在斯卡拉太大),是克隆库 。 它的快速,简便,深受克隆基于字段(使用反射)对象,是不够克隆称为不可变对象(如字符串,整数等)的智能。 最后,你可以因此它也不会克隆它们注册自定义不可变对象。
我强烈推荐它。
文章来源: What is the easiest way to deeply clone (copy) a mutable Scala object?