Wal*_*ang 15
由于您希望以最简单的方式深度复制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)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8538 次 |
| 最近记录: |