以下是重构后的代码,主要是将一些复杂的流式操作拆分成了多个方法,提高了可读性和可维护性:

private List<InstanceScoreRecodeEntity> getScoreRecodeList(final ActivityScoreItemVO activityScoreItemVO, 
                                                           final String activityId) {
    List<Map<String, Object>> tableSource = activityScoreItemVO.getScoreItemTable().getTableSource();
    if (CollectionUtils.isEmpty(tableSource)) {
        return Collections.emptyList();
    }
    Stream<ScoreItemVO> scoreItemStream = tableSource.stream()
        .flatMap(map -> map.getScoreList().stream())
        .filter(Objects::nonNull);
    return scoreItemStream.map(item -> convertScoreRecode(item, activityId))
        .collect(Collectors.toList());
}

private InstanceScoreRecodeEntity convertScoreRecode(ScoreItemVO scoreItemVO, String activityId) {
    InstanceScoreRecodeEntity scoreRecodeEntity = new InstanceScoreRecodeEntity();
    scoreRecodeEntity.setActivityId(activityId);
    scoreRecodeEntity.setScoreItemId(scoreItemVO.getId());
    scoreRecodeEntity.setScore(scoreItemVO.getScore());
    return scoreRecodeEntity;
}

通过将复杂的流式操作拆分为多个方法,代码变得更加清晰易懂,也更易于维护。每个方法只负责一个特定的功能,代码逻辑更加清晰。此外,这种方法也提高了代码的可重用性,相同的功能可以被不同的方法调用。

Java 代码优化:将复杂的流式操作拆分为多个方法

原文地址: https://www.cveoy.top/t/topic/oYsC 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录