modelMapper.map的一个使用例子
生活随笔
收集整理的這篇文章主要介紹了
modelMapper.map的一个使用例子
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
先上modelMapper.map的中文翻譯:(百度自動翻譯)
應用通常由相似但不同的對象模型組成,其中兩個模型中的數據可能相似,但模型的結構和關注點不同。對象映射使將一個模型轉換為另一個模型變得容易,從而允許單獨的模型保持隔離。
ModelMapper 的目標是通過自動確定一個對象模型如何根據慣例以與人類相同的方式映射到另一個對象模型來簡化對象映射,同時提供一個簡單、重構安全的 API 來處理特定的使用案例。
ModelMapper 分析對象模型,以便智能地確定應如何映射數據。無需手動映射。ModelMapper 為您完成大部分工作,自動投影和平整復雜的模型。
您可以使用方法引用來匹配源獲取器和目標設置器來定義屬性映射。
此示例將目標類型的方法映射到源類型的方法層次結構,從而允許源和目標方法之間發生深度映射:
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的一个使用例子的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【java网络编程】用TCP socke
- 下一篇: springboot项目修改个人头像