日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

modelMapper.map的一个使用例子

發布時間:2024/9/30 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 modelMapper.map的一个使用例子 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

先上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的一个使用例子的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。