1

为什么 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。两者都有 Number 字段,但是在从源类映射到目标类时,它会抛出这样的异常。

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

4

1 回答 1

1

根据您的推土机消息,它不是同一类型。源字段是Integer,目的地是Number

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

于 2012-12-12T13:36:18.680 回答