我认为当前的绿色答案不好 ,为什么您会问?
- 它添加了很多代码
- 它要求您列出所有要复制的字段并执行此操作
- 当使用clone()时,这对列表不起作用(这是HashMap的clone()所说的:返回此HashMap实例的浅表副本:键和值本身不会被克隆。)因此您最终需要手动进行操作(这使得我哭)
哦,顺便说一句,序列化也很糟糕,您可能必须在各处添加Serializable(这也让我哭了)。
那么解决方案是什么:
Java深度 克隆库克隆库
是一个小型的,开源的(Apache许可证)Java库,用于深度克隆对象。对象不必实现Cloneable接口。有效地,该库可以克隆任何java对象。如果您不希望修改缓存的对象,或者每当要创建对象的深层副本时,都可以在缓存实现中使用它。
Cloner cloner=new Cloner();XX clone = cloner.deepClone(someObjectOfTypeXX);
在http://pre.google.com/p/cloning/上进行检查



