我有一个包含字符串字段和Map的POJO类。 我读了关于克隆对象的Joshua Bloch Effective Java片段,但我认为这种情况并非如此微不足道。 我有几个POJO,我想用复制构造函数的方法克隆它们,但我不知道如何克隆映射,因为值有一个对象?如何正确克隆对象类?
我知道这个对象可能是一个简单的不可变对象,例如一个String类,但有时它可能是一个完全不同的POJO,甚至列表或映射。我认为它可能工作的onyl方式是使用instanceof在构造函数中进行一些检查,但它很丑陋(我必须检查List,Map和每个POJO是否正确?)。
也许我应该改变我的方法来实现Cloneable接口?
我也看到了一个序列化的克隆方法,但我认为这也是一个丑陋的解决方案,并且它的性能会比使用Copy构造器方法时糟糕。
你能给我一个建议,我应该如何克隆我的POJO?
为什么要克隆他们呢?特别是如果你甚至不知道它们是什么类型。因为你甚至不知道它们的类型,所以你无法修改它们。 –
18年来我从未在生产代码中使用过clone()。 – EJP
为什么?因为我有一个POJO“A”,其中包含具有不同属性的POJO列表“B”,并且我想要完全不同的对象,一个新副本。我只需要它,因为我想创建pojo“A”的几个实例。那些POJO“A”应该在POJO“B”中具有不同的值,并且如果POJO“A”将参照相同的“B”POJO,那么我将不能在不同的POJO“A”中设置不同的值。 –