我只是试图找到最佳的解决方案,如何制作HashMap
的深层副本。此映射中没有实现Cloneable
的对象。我想找到比序列化和反序列化更好的解决方案。
看一下深度克隆,在Google Code上您可以找到一个库。您可以在https://github.com/kostaskougios/cloning上阅读它。
如何运作很容易。这可以克隆任何对象,并且该对象不必实现任何接口,例如可序列化。
Cloner cloner = new Cloner();
MyClass clone = cloner.deepClone(o);
// clone is a deep-clone of o
不过请注意:这可能会克隆成千上万个对象(如果克隆的对象具有那么多引用)。另外,复制文件或流可能会使JVM崩溃。
但是,您可以忽略类的某些实例,例如stream等。值得检查此库及其来源。
我不认为可以以通用方式实现。
目前,我建议以一种不太笼统的方式重写您的问题
这不容易,我们正在使用某种解决方法:
1)将地图转换为json字符串。 (例如,使用Google Gson)
2)将json字符串转换回map。
请注意,存在性能问题,但这是最简单的方法。