簡體   English   中英

推土機:映射列表時類強制轉換異常

[英]Dozer: class cast exception while mapping lists

我有兩個值對象(ValueObjectA和ValueObjectB),每個都有name1和name2

然后,我有兩個列表,每個列表都包含一個值對象,我計划將其與推土機映射。

一旦我訪問映射的“ listOfB”,就會得到一個類強制轉換異常,因為推土機將ValueObjectA類型的對象映射到ValueObjectsB的列表中。

是否可以映射這兩個列表而無需迭代列表並逐對象映射?

樣例代碼:

...    
// prepare object A
List<ValueObjectA> lostOfA = new LinkedList();
ValueObjectA voA = new ValueObjectA();
voA.setName1("foo");
voA.setName2("bar");
lostOfA.add(voA);

// map object A to object B 
List<ValueObjectB> listOfB = new LinkedList();
mapper.map(lostOfA, listOfB);

for (ValueObjectB voB:listOfB ){
...

不容易。

在推土機論壇上看看這個話題。

報價:

“嵌套的集合是自動處理的,但是您需要對頂級集合進行迭代,這是正確的。當前沒有一種更優雅的方式來處理此問題。”

嘗試為兩個類都定義一個映射。 推土機將在運行時自動使用此映射,並相應地轉換對象。

例如(偽代碼):

<mapping>
  <classA>ValueObjectA</classA> 
  <classB>ValueObjectB</classB> 
<mapping>

我猜這兩個類中的字段名稱都相同。 如果不是,則需要在上面的映射中指定它們。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM