java - 如何在 Dozer 中映射集合

标签 java mapping dozer data-mapping

我想做这样的事情:

ArrayList<CustomObject> objects = new ArrayList<CustomObject>();
...
DozerBeanMapper MAPPER = new DozerBeanMapper();
...
ArrayList<NewObject> newObjects = MAPPER.map(objects, ...); 

假设:

<mapping>
  <class-a>com.me.CustomObject</class-a>
  <class-b>com.me.NewObject</class-b>   
    <field>  
      <a>id</a>  
      <b>id2</b>  
    </field>  
</mapping>

我试过了:

ArrayList<NewObject> holder = new ArrayList<NewObject>();
MAPPER.map(objects, holder);

但是持有者对象是空的。我还尝试更改第二个参数,但没有任何运气......

最佳答案

引用:

"Nested collections are handled automatically, but you are correct that top level collections need to be iterated over. Currently there isn't a more elegant way to handle this."

Someone has figured a way to do it without a looping construct in your code base ,但我认为将它放入您的代码中更容易(并且更具可读性/可维护性)。希望他们能尽快添加此功能。

关于java - 如何在 Dozer 中映射集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1358595/

相关文章:

java - NoSuchMethodException : java. time.LocalDateTime.<init>() 使用 Super CSV 读取 CSV

java - Firebase 事务从不调用 onComplete()

java - 检测服务器套接字关闭

php - Doctrine2/Symfony 2 @ParamConverter 使用自定义存储库方法删除未映射的参数

hash - 如何将输入映射到具有相同输出和均匀分布保证的输出?

java - Dozer 映射忽略 Hibernate 延迟加载 - Spring

java - 使用dozer复制java对象

java - 在另一个 JavaBean 中设置绑定(bind)的 JavaBean

java - 仅显示最后添加的按钮

google-maps - 在 Google map 窗口中查找角落的经纬度