小白提升日记 2022-08-25 11:14 采纳率: 69.2%
浏览 30
已结题

怎么将for里面的代码提取出来

问题

怎么将for里面的代码提取出来 有什么好的方式

代码
List<ApiServiceResponseDTO> list = apiServiceResponseDTOIPage.getRecords();
            if (CollectionUtils.isNotEmpty(list)) {
                for (ApiServiceResponseDTO apiServiceResponseDTO : list) {
                    String libraryId = apiServiceResponseDTO.getLibraryId();
                    if (StringUtils.isNotBlank(libraryId)) {
                        LabelLibraryInfoPO labelLibraryInfoPO = labelLibrayInfoMapper.selectById(libraryId);
                        ExploreLabelPO exploreLabel = exploreLabelRepository.getById(apiServiceResponseDTO.getLabelId());
                        ExploreLabelPO exploreFailLabel = exploreLabelRepository.getById(apiServiceResponseDTO.getFailedLabelId());
                        if (labelLibraryInfoPO != null) {
                            apiServiceResponseDTO.setLibraryName(labelLibraryInfoPO.getName());
                        }
                        if (exploreLabel != null) {
                            apiServiceResponseDTO.setLabelName(exploreLabel.getCondName());
                        }
                        if (exploreFailLabel != null) {
                            apiServiceResponseDTO.setFailedLabelName(exploreFailLabel.getCondName());
                        }
                    }
                }
            }
  • 写回答

3条回答 默认 最新

  • 小白提升日记 2022-08-25 15:26
    关注

    将其通过stream流进行封装,再将其进行组装后即可遍历获得,在领域模型下本人探究心得

    java //1. libraryIds---组装获取libraryName信息 List<String> libraryIds = apiServiceResponseDTOIPage.getRecords().stream().map(ApiServiceResponseDTO::getLibraryId).collect(Collectors.toList()); List<LabelLibraryInfoPO> poc1 = labelLibrayInfoMapper.getLibraryIds(libraryIds); Map<String, String> libraryName = poc1.stream().collect(Collectors.toMap(LabelLibraryInfoPO::getPkId, LabelLibraryInfoPO::getName)); //2. labelIds---组装获取condName信息 List<String> labelIds = apiServiceResponseDTOIPage.getRecords().stream().map(ApiServiceResponseDTO::getLabelId).collect(Collectors.toList()); List<ExploreLabelPO> poc2 = exploreLabelRepository.getLabelIds(labelIds); Map<String,String> condName = poc2.stream().collect(Collectors.toMap(ExploreLabelPO::getPkId,ExploreLabelPO::getCondName)); //3. failedLabelIds---组装获取condName信息 List<String> failedLabelIds = apiServiceResponseDTOIPage.getRecords().stream().map(ApiServiceResponseDTO::getFailedLabelId).collect(Collectors.toList()); List<ExploreLabelPO> poc3 = exploreLabelRepository.getFailedLabelIds(failedLabelIds); Map<String,String> condName2 = poc3.stream().collect(Collectors.toMap(ExploreLabelPO::getPkId,ExploreLabelPO::getCondName)); //4.遍历 apiServiceResponseDTOIPage.getRecords().forEach(item -> { if (CollUtil.isNotEmpty(libraryName)){ item.setLibraryName(libraryName.get(item.getLibraryId())); } if (CollectionUtils.isNotEmpty(labelIds)){ item.setLabelName(condName.get(item.getLabelId())); } if (CollectionUtils.isNotEmpty(failedLabelIds)){ item.setFailedLabelName(condName2.get(item.getFailedLabelId())); } }); )

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 9月2日
  • 已采纳回答 8月25日
  • 创建了问题 8月25日

悬赏问题

  • ¥60 求一个简单的网页(标签-安全|关键词-上传)
  • ¥35 lstm时间序列共享单车预测,loss值优化,参数优化算法
  • ¥15 基于卷积神经网络的声纹识别
  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
  • ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
  • ¥15 一直显示正在等待HID—ISP
  • ¥15 Python turtle 画图