我正在尝试使用推土机来转换
class Source {
private List<Foo> foos = new ArrayList<Foo>();
public List<Foo> getFoos() {
return foos;
}
public void setFoos(List<Foo> foos) {
this.foos = foos;
}
}
到一个实例:
class Target {
private List<Foo> foos = new ArrayList<Foo>();
public List<Foo> getFoos() {
return foos;
}
}
在Java代码中,我会像这样执行转换
Source s = new Source();
Target t = new Target();
t.getFoos().addAll(s.getFoos());
默认情况下,Dozer 不执行此转换,因为Target
没有foos
属性(只是一个 getter)。
实际上,我有很多这样的属性需要映射。一种选择是告诉 Dozer直接映射私有字段,但这并不完全令人满意,因为:
- 我将需要在 Dozer XML 配置中按名称指定要以这种方式映射的每个字段
- 访问私有字段是不好的
有没有更好的办法?