繁体   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