Java深度克隆实用程序推荐
是否有用于深度克隆Java集合的实用程序:
- Arrays
- Lists
- Maps
注意:更喜欢一些不使用序列化但使用Object.clone()方法的解决方案。我可以确定我的自定义对象将实现clone()方法,并且仅使用可克隆的Java标准类…
回答:
我认为以前的绿色答案很不好,为什么你会问?
- 它添加了很多代码
- 它要求你列出所有要复制的字段并执行此操作
- 当使用clone()时,这对列表不起作用(这是HashMap的clone()所说的:返回此HashMap实例的浅表副本:键和值本身不会被克隆。)因此你最终需要手动进行操作(这使得我哭)
哦,顺便说一句,序列化也很糟糕,你可能必须在各处添加Serializable(这也让我哭了)。
那么解决方案是什么:
Java深度 克隆库克隆库是一个小型的,开源的(Apache许可证)Java库,用于深度克隆对象。对象不必实现Cloneable接口。实际上,该库可以克隆任何java对象。如果你不希望修改缓存的对象,或者想要创建对象的深层副本,则可以在缓存实现中使用它。
Cloner cloner=new Cloner();XX clone = cloner.deepClone(someObjectOfTypeXX);
以上是 Java深度克隆实用程序推荐 的全部内容, 来源链接: utcz.com/qa/406184.html