Dozer:不支持Number to Number映射

时间:2012-12-12 10:01:28

标签: java integer dozer

为什么dozer无法将Number类型的Source Class变量映射到相同类型的Destination Class变量?

获得以下例外:

java.lang.IllegalArgumentException: argument type mismatch

Some more Info:
Dest parent class: XXX
Source field name: totalAccounts
Source field type: class java.lang.Integer
Source field value: 8
Dest parent class: XXX
Dest field name: totalAccounts
Dest field type: java.lang.Number

这里,源类和目标类都引用相同的类类型,例如Transactions.Both有Number字段,但是从源类映射到目标类时,它会抛出这样的异常。

我不明白为什么它应该与相同数据类型的“参数不匹配”?

1 个答案:

答案 0 :(得分:1)

根据您的Dozer消息,它不是同一类型。源字段为Integer,目标为Number

The Dozer documentation没有提到这样的内置转换器(至少,如果我读得正确的话),所以你可能需要实现自己的org.dozer.CustomConverter实现。 既然你说它是同一个类和相同的字段,那么我不知道为什么一个是Integer而另一个是Number(至少,没有关于类和映射的更多信息)文件)。最好仔细检查类和映射文件,并尝试使用CustomConverter作为解决方法。