没有设置器的对象的推土机映射
Dozer mapping for objects without setters
public class ParentOne {
private List<ChildOne> child;
public List<ChildOne> getChild() {
if (child == null) {
child = new ArrayList<ChildOne>();
}
return child;
}
}
public class ParentTwo {
private List<ChildTwo> child;
public List<ChildTwo> getChild() {
if (child == null) {
child = new ArrayList<ChildTwo>();
}
return child;
}
}
推土机映射
<mapping>
<class-a>ParentOne</class-a>
<class-b>ParentTwo</class-b>
<field>
<a is-accessible="true">child</a>
<b is-accessible="true">child</b>
</field>
</mapping>
public class Client {
public static void main(String[] args) {
ParentOne parentOne = new ParentOne();
parentOne.getChild().add(new ChildOne());
parentOne.getChild().add(new ChildOne());
ParentTwo parentTwo = dozerBeanMapper.map(parentOne, ParentTwo.class);
}
}
父级 class 不包含列表的设置器。因此,我以直接访问字段的方式制作了推土机映射。
映射正常,但问题是在映射 parentTwo 实例包含 ChildOne 类型的子实例之后,它应该是 ChildTwo。
我错过了什么吗?
添加提示(有关详细信息,请参阅 here)。
<mapping>
<class-a>ParentOne</class-a>
<class-b>ParentTwo</class-b>
<field>
<a is-accessible="true">child</a>
<b is-accessible="true">child</b>
<a-hint>ChildOne</a-hint>
<b-hint>ChildTwo</b-hint>
</field>
</mapping>
您可能需要使用 类 的完全限定名称,而不仅仅是 ChildOne
和 ChildTwo
,但除此之外,它应该可以工作。
public class ParentOne {
private List<ChildOne> child;
public List<ChildOne> getChild() {
if (child == null) {
child = new ArrayList<ChildOne>();
}
return child;
}
}
public class ParentTwo {
private List<ChildTwo> child;
public List<ChildTwo> getChild() {
if (child == null) {
child = new ArrayList<ChildTwo>();
}
return child;
}
}
推土机映射
<mapping>
<class-a>ParentOne</class-a>
<class-b>ParentTwo</class-b>
<field>
<a is-accessible="true">child</a>
<b is-accessible="true">child</b>
</field>
</mapping>
public class Client {
public static void main(String[] args) {
ParentOne parentOne = new ParentOne();
parentOne.getChild().add(new ChildOne());
parentOne.getChild().add(new ChildOne());
ParentTwo parentTwo = dozerBeanMapper.map(parentOne, ParentTwo.class);
}
}
父级 class 不包含列表的设置器。因此,我以直接访问字段的方式制作了推土机映射。 映射正常,但问题是在映射 parentTwo 实例包含 ChildOne 类型的子实例之后,它应该是 ChildTwo。
我错过了什么吗?
添加提示(有关详细信息,请参阅 here)。
<mapping>
<class-a>ParentOne</class-a>
<class-b>ParentTwo</class-b>
<field>
<a is-accessible="true">child</a>
<b is-accessible="true">child</b>
<a-hint>ChildOne</a-hint>
<b-hint>ChildTwo</b-hint>
</field>
</mapping>
您可能需要使用 类 的完全限定名称,而不仅仅是 ChildOne
和 ChildTwo
,但除此之外,它应该可以工作。