任何java对象到对象映射的工具? [关闭]

问题

我正在尝试使用java将DO转换为DTO并在开始编写自己的工具之前寻找自动化工具。我只是想知道是否有相同的免费工具。


#1 热门回答(350 赞)

那边有一些图书馆:

  • Commons-BeanUtils:ConvertUtils - >实用程序方法,用于将String标量值转换为指定Class的对象,String数组转换为指定Class的数组。
  • Commons-Lang:ArrayUtils - >对数组的操作,原始数组(如int [])和原始包装数组(如Integer [])。
  • Commons-Convert:Commons-Convert旨在提供一个专门用于将一种类型的对象转换为另一种类型的任务的库。第一阶段将重点关注Object to String和String to Object转换。
  • Spring框架:Spring对PropertyEditors有很好的支持,它也可用于将对象转换为/从Strings转换。
  • Dozer:Dozer是一个功能强大但又简单的Java Bean到Java Bean映射器,可以递归地将数据从一个对象复制到另一个对象。通常,这些Java Bean将具有不同的复杂类型。
  • ModelMapper:ModelMapper是一个智能对象映射框架,可以自动将对象相互映射。它使用基于约定的方法映射对象,同时提供简单的重构安全API来处理特定用例。
  • MapStruct:MapStruct是用于bean映射的编译时代码生成器,在运行时导致快速(不使用反射或类似),无依赖和类型安全的映射代码。
  • Orika:Orika使用字节码生成来创建具有最小开销的快速映射器。
  • Selma:用于映射的编译时代码生成器
  • JMapper:使用Annotation,XML或API生成Bean映射器
  • Smooks:Smooks JavaBean Cartridge允许你从消息数据中创建和填充Java对象(即将数据绑定到)(由评论中的superfilin建议)。
  • Transmorph:Transmorph是一个免费的java库,用于将一种类型的Java对象转换为另一种类型的对象(具有另一种签名,可能是参数化的)。 (似乎死了,最后更新2013)
  • EZMorph:EZMorph是一个简单的java库,用于将Object转换为另一个Object。它支持基元和对象的转换,用于DynaBeans的多维数组和转换(似乎死了,最后更新2008)
  • Morph:Morph是一个Java框架,可以简化应用程序的内部互操作性。当信息流经应用程序时,它会经历多次转换。 Morph提供了实现这些转换的标准方法。 (似乎死了,最后更新2008)
  • Lorentz:Lorentz是一个通用的对象到对象转换框架。它提供了一个简单的API,用于将一种类型的Java对象转换为另一种类型的对象。 (好像死了)
  • OTOM:使用OTOM,你可以将任何对象的任何数据复制到任何其他对象。可能性是无止境。欢迎来到"秋天"。 (好像死了)

#2 热门回答(100 赞)

你可以试试Dozer

Dozer是Java Bean到Java Bean映射器,它以递归方式将数据从一个对象复制到另一个对象。通常,这些Java Bean将具有不同的复杂类型。 Dozer支持简单属性映射,复杂类型映射,双向映射,隐式显式映射以及递归映射。这包括映射集合属性,这些属性也需要在元素级别进行映射。


#3 热门回答(29 赞)

另一个是Orika -https://github.com/orika-mapper/orika

Orika是一个Java Bean映射框架,可以递归地将数据(以及其他功能)从一个对象复制到另一个对象。在开发多层应用程序时,它非常有用。 Orika专注于尽可能自动化,同时根据需要通过配置和扩展提供定制。 Orika使开发人员能够:通过将嵌套属性映射到顶级属性来映射复杂和深度结构化对象"展平"或"展开"对象,反之亦然,即时创建映射器,并应用自定义来控制部分或全部映射创建转换器,以完全控制对象图中任何位置的特定对象集的映射 - 按类型,甚至通过特定属性名称处理代理或增强对象(如Hibernate或各种模拟框架)应用使用一个配置的双向映射映射到目标抽象类或接口的适当具体类的实例处理反向映射处理JavaBean规范之外的复杂约定。 Orika使用字节代码生成来创建具有最小开销的快速映射器。