我正在使用 Dozer 来映射一些 bean,并且我有一个我无法弄清楚的映射。
这是我的课程:
class A{
private ComplexeType type;
//Constructors & getters
}
class B{
private String[] type;
//Constructors & getters
}
class ComplexteType{
private List<String> list;
//Getter for the list, no constructor
}
如何将 A 类映射到 B 类?
我想使用xml将A类的字段类型映射到B类的字段类型。
这是xml文件:
<mapping>
<class-a>A</class-a>
<class-b>B</class-b>
<field custom-converter="AToBCustomConverter">
<a>type</a>
<b>type</b>
</field>
</mapping>
这是我的 CustomConverter 中的一个 sippet
if (source == null) {
return null;
}
B dest = null;
if (source instanceof java.lang.String) {
// check to see if the object already exists
if (destination == null) {
dest = new A();
} else {
dest = (A) destination;
}
dest.getTypes().add((String) source);
return dest;
} else if (source instanceof B) {
String[] sourceObj = ((B) destination)
.getType()
.toArray(
new String[((B) destination)
.getType().size()]);
return sourceObj;
} else {
throw new MappingException(
"Converter StatResultCustomConverter used incorrectly. Arguments passed in were:"
+ destination + " and " + source);
}
}