先上modelMapper.map的中文翻译:(百度自动翻译)
应用通常由相似但不同的对象模型组成,其中两个模型中的数据可能相似,但模型的结构和关注点不同。对象映射使将一个模型转换为另一个模型变得容易,从而允许单独的模型保持隔离。

ModelMapper 的目标是通过自动确定一个对象模型如何根据惯例以与人类相同的方式映射到另一个对象模型来简化对象映射,同时提供一个简单、重构安全的 API 来处理特定的使用案例。

ModelMapper 分析对象模型,以便智能地确定应如何映射数据。无需手动映射。ModelMapper 为您完成大部分工作,自动投影和平整复杂的模型。
您可以使用方法引用来匹配源获取器和目标设置器来定义属性映射。

typeMap.addMapping(Source::getFirstName, Destination::setName);

此示例将目标类型的方法映射到源类型的方法层次结构,从而允许源和目标方法之间发生深度映射:

setAgegetCustomer().getAge()typeMap.addMapping(src -> src.getCustomer().getAge(), PersonDTO::setAge);

此示例将目的地类型的方法层次结构映射到源类型的属性层次

结构:getCustomer().setName()person.getFirstName()typeMap.addMapping(src -> src.getPerson().getFirstName(), (dest, v) -> dest.getCustomer().setName(v));

官网其余部分就不复制了,自动翻译的也很烂。。

一个使用的例子:

public class PageInfoHelper {public static <T, J> PageInfo<J> copyMap(PageInfo<T> source, Function<? super T, ? extends J> mapper) {PageInfo<J> newPage = new PageInfo<>();newPage.setPageNum(source.getPageNum());newPage.setPageSize(source.getPageSize());newPage.setSize(source.getSize());newPage.setStartRow(source.getStartRow());newPage.setEndRow(source.getEndRow());newPage.setTotal(source.getTotal());newPage.setPages(source.getPages());newPage.setList(source.getList().stream().map(mapper).collect(Collectors.toList()));newPage.setPrePage(source.getPrePage());newPage.setNextPage(source.getNextPage());newPage.setIsFirstPage(source.isIsFirstPage());newPage.setIsLastPage(source.isIsLastPage());newPage.setHasPreviousPage(source.isHasPreviousPage());newPage.setHasNextPage(source.isHasNextPage());newPage.setNavigatePages(source.getNavigatePages());newPage.setNavigatepageNums(source.getNavigatepageNums());newPage.setNavigateFirstPage(source.getNavigateFirstPage());newPage.setNavigateLastPage(source.getNavigateLastPage());return newPage;}
}
    @RequestMapping(value = "/event/page/list", method = RequestMethod.POST)public RestResponse<PageInfo<UserEventLogVM>> eventPageList(@RequestBody UserEventPageRequestVM model) {PageInfo<UserEventLog> pageInfo = userEventLogService.page(model);PageInfo<UserEventLogVM> page = PageInfoHelper.copyMap(pageInfo, d -> {UserEventLogVM vm = modelMapper.map(d, UserEventLogVM.class);vm.setCreateTime(DateTimeUtil.dateFormat(d.getCreateTime()));return vm;});return RestResponse.ok(page);}

其中用到的地方是:

PageInfoHelper.copyMap(pageInfo, d -> {UserEventLogVM vm = modelMapper.map(d, UserEventLogVM.class);vm.setCreateTime(DateTimeUtil.dateFormat(d.getCreateTime()));return vm;});

modelMapper.map的一个使用例子相关推荐

  1. CapsuleNet的一个小例子

    引用YouTube上一个up主的视频,讲解一个capsulenet的一个小例子 识别的过程 假设我们要识别右面的"船",经过卷积得到2个识别矩形和三角形的胶囊(即向量,之前一篇博客 ...

  2. SAP MM采购定价过程的一个简单例子

    SAP MM采购定价过程的一个简单例子 本文以一个简单的例子阐述了SAP MM模块中采购定价的基本原理.本例中,假定采购订单里输入的是含税采购价,然后系统自动计算出物料最终的采购价格(含税价-税额=采 ...

  3. 用一个实际例子理解Docker volume工作原理

    要了解Docker Volume,首先我们需要理解Docker文件系统的工作原理.Docker镜像是由多个文件系统的只读层叠加而成.当一个容器通过命令docker run启动时,Docker会加载只读 ...

  4. 决策树的构造——一个手工例子

    决策树的构造--一个手工例子 这个数据集来自Mitchell的机器学习,叫做是否去打网球play-tennis,以下数据仍然是从带逗号分割的文本文件,复制到纪事本,把后缀直接改为.csv就可以拿Exc ...

  5. 一个ioc例子jdk和spring版本导致问题

    今天橘子松在做一个简单例子的时候,出现bug让我久久找了半小时... 天啊 不会吧 错误如下:   java.lang.NoSuchMethodError: org.springframework.a ...

  6. 关于map的一个习题,忽略大小写和标点符号单词的计数器

    c++ primer5th,map的一个习题 11.4 #include <iostream> #include <string> #include <map> # ...

  7. SAP 电商云 Spartacus UI Proxy Facade 的一个实际例子

    如何理解 SAP 电商云 Spartacus UI 中的 proxy facade? Jerry 这篇文章什么是 SAP 电商云 Spartacus UI 的 proxy façade提供了理论上的解 ...

  8. 用一个实际例子理解Docker volume工作原理 1

    要了解Docker Volume,首先我们需要理解Docker文件系统的工作原理.Docker镜像是由多个文件系统的只读层叠加而成.当一个容器通过命令docker run启动时,Docker会加载只读 ...

  9. MVVM模式的一个小例子

    使用SilverLight.WPF也有很长时间了,但是知道Binding.Command的基本用法,对于原理性的东西,一直没有深究.如果让我自己建一个MVVM模式的项目,感觉还是无从下手,最近写了一个 ...

最新文章

  1. js webpack 配置路径_webpack中如何设置html引入js的路径
  2. 前端学习(755):作用域案例
  3. mysql ndb 关闭_Mysql NDB 常见问题
  4. 如何自学成Python大神?这份学习宝典火爆 IT 圈!
  5. Prototype使用Template
  6. mysql_数据查询_单表查询
  7. 百度SEO之-权重与排名(含工具网站)
  8. nginx+fastdfs 502异常解决
  9. Openerp管理权限的方法
  10. The Secant Method(正割法、弦截法) 附C语言代码
  11. etcdctl的使用[v3版本]
  12. Flan-T5: One Model for ALL Tasks
  13. lv官网编码查询_老太太拿LV买菜装大葱!结果闺女被抓了......
  14. 【数分】7. AB实验篇
  15. 为何明朝宦官当道如此严重?
  16. 2021年压力容器作业R2移动式压力容器充装证考试题库
  17. java 生成随机数字_java如何产生随机数
  18. 写代码这条路,能走多远?阿里算法专家告诉你
  19. L3-008 喊山 (30 分)(bfs)
  20. 2008年超级计算机排名,2008年9月16日,我国首台超百万亿次超级计算机曙光5000A在天津下...

热门文章

  1. android 手机命令大全,adb 命令大全
  2. 跨sql server查询mysql_SQL Server 跨数据库查询数据的方法
  3. shell-sort
  4. c语言计算机二级考试内容,2017计算机二级考试内容C语言
  5. html5 json转字符串,web前端-js小记(5)-字符串及json
  6. html表单中的数据提交后清空,怎么实现小程序中表单提交后自动清空内容
  7. mysql未提交事务sql_MySQL如何找出未提交事务的SQL浅析
  8. 七十九、Springboot 整合 Elasticsearch
  9. NAACL 2021 | QA-GNN:基于语言模型和知识图谱的问答推理
  10. AAAI 2021 | 幻灯片中文字的重要性预测赛亚军DeepBlueAI团队技术分享