我正在使用BeanUtils.copyProperties将一个对象的整个内容复制到另一个继承自该对象的内容。
在上下文中,从中复制值的域对象包含一组自定义类型Xref的对象。该自定义类型具有一个嵌入式类,其中包含各种类类型的各个字段。
由于某种原因,封装在嵌入式对象中的对象的字段之一不会被复制。但是我需要的大多数其他东西都会被复制。
举一个例子:
class Source {
private Set<Xref> xref;
...
}
class Xref {
...
public static class primaryKey {
...
private MyObj obj;
}
}
class MyObj {
private Integer id;
...
}
如果我尝试使用BeanUtils.copyProperties将“源”对象的内容复制到“ SourceExtended”对象中,请使用这些名称,其值为source.xrefs.get(0).getPrimaryKey()。getObj()。getId()不会被复制。
在原始对象中它有一个值,但在目标对象中它是空的...
知道为什么吗?
谢谢。
最佳答案
从Javadocs:
请注意,此方法旨在执行属性的“浅表复制”,因此不会复制复杂的属性(例如,嵌套属性)。