我需要用 Dozer 用空字符串初始化目标对象上的 String 属性。
想象这些物体:
SRC
public class Container {
private String animalName;
....
DEST
public class Animal {
private String name;
private String type;
我需要从 Container 初始化为 Animal 并将type属性设置为“”而不是 null:
我发现的唯一方法是编写一个自定义转换器,如下所示:
public class InitializeStringConverter extends DozerConverter<Container, String>{
public InitializeStringConverter() {
super(Container.class, String.class);
}
@Override
public Container convertFrom(String arg0, Container arg1) {
return null;
}
@Override
public String convertTo(Container arg0, String arg1) {
return "";
}
}
并具有此映射:
<mapping>
<class-a>it.alten.sample.mapping.Container</class-a>
<class-b>it.alten.sample.mapping.Animal</class-b>
<field custom-converter="it.alten.sample.mapping.converter.InitializeStringConverter">
<a>this</a>
<b>type</b>
</field>
<!--
<field>
<a>animalName</a>
<b>name</b>
</field>
-->
<field>
<a>animalType</a>
<b>type</b>
</field>
</mapping>
有没有更简洁的方法来完成这项任务?
亲切的问候马西莫