为什么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字段,但是从源类映射到目标类时,它会抛出这样的异常。
我不明白为什么它应该与相同数据类型的“参数不匹配”?
答案 0 :(得分:1)
根据您的Dozer消息,它不是同一类型。源字段为Integer
,目标为Number
。
The Dozer documentation没有提到这样的内置转换器(至少,如果我读得正确的话),所以你可能需要实现自己的org.dozer.CustomConverter
实现。
既然你说它是同一个类和相同的字段,那么我不知道为什么一个是Integer
而另一个是Number
(至少,没有关于类和映射的更多信息)文件)。最好仔细检查类和映射文件,并尝试使用CustomConverter
作为解决方法。