2012-12-12 64 views
1

爲什麼推土機不能將Number類型的Source類變量映射到相同類型的Destination類變量?推土機:不支持號碼到號碼的映射

收到以下異常:

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有號碼區域,但是,同時映射從源到目的地類則拋出這樣的例外。 。

我不明白爲什麼它應該是「參數不匹配」與相同的數據類型?

回答

1

根據您的Dozer消息,它不是相同的類型。來源字段是Integer,目的地是Number

The Dozer documentation沒有提到這樣的內置轉換器(至少如果我正確讀取的話),所以您可能需要實現您自己的實現org.dozer.CustomConverter。 既然你說它是相同的班級和相同的字段,我爲什麼一個是Integer而另一個是Number(至少,沒有關於類和你的映射文件的更多信息)。最好仔細檢查類和映射文件,然後嘗試使用CustomConverter作爲解決方法。