我正在使用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


请注意,此方法旨在执行属性的“浅表复制”,因此不会复制复杂的属性(例如,嵌套属性)。

09-12 04:28