我只是在寻找最佳的解决方案,如何制作HashMap的深拷贝。此映射中没有实现Cloneable的对象。我想找到比序列化和反序列化更好的解决方案。

最佳答案

看一看Deep Cloning,在Google Code上可以找到一个库。您可以在https://github.com/kostaskougios/cloning上阅读它。

它是如何工作的很容易。这可以克隆任何对象,并且该对象不必实现任何接口(interface),例如可序列化。

Cloner cloner = new Cloner();
MyClass clone = cloner.deepClone(o);
// clone is a deep-clone of o

但是请注意:这可能会克隆成千上万个对象(如果克隆的对象具有那么多引用)。另外,复制文件或流可能会使JVM崩溃。

但是,您可以忽略类的某些实例,例如stream等。值得检查此库及其源代码。

07-24 13:43