我有一个包含字符串字段和Map的POJO类。 我阅读了有关克隆对象的Joshua Bloch Effective Java片段,但我认为这种情况并非如此微不足道。 我有几个POJO,我想使用Copy Constructor方法克隆它们,但我不知道如何克隆map中哪个值有对象?
我知道这个Object可能是一个简单的不可变对象,例如String类,但有时它可能是一个完全不同的POJO,甚至是列表或映射。我认为它可能工作的onyl方式是使用instanceof在构造函数中进行一些检查,但它很难看(我必须检查List,Map和每个POJO对吗?)。
也许我应该改变实现Cloneable接口的方法?
我也看到了一个带序列化的克隆方法,但我认为这也是一个丑陋的解决方案,而且它的性能会比较差,例如在使用Copy Constructor方法时。
您能否告诉我如何克隆我的POJO?
答案 0 :(得分:0)
您可以查看Apache Commons
BeanUtils。它具有cloneBean(Object bean)
方法,即使该类未实现Cloneable
接口,也会克隆所有属性。