以下是使用高阶函数进行优化的代码:

public static Map<String, CalculationResultDTO> statisticsOverallAppraisal(final List<ComputeResultExportDTO> computeResultExports) {
    return CollectionUtils.emptyIfNull(computeResultExports)
        .stream()
        .map(ExcelConvertUtil::overallAppraisalCompute)
        .collect(Collectors.groupingBy(CalculationResultDTO::getScoreItemId,
            LinkedHashMap::new,
            Collectors.reducing(new CalculationResultDTO(),
                (cal1, cal2) -> {
                    BigDecimal calculationResultValue = cal1.getCalculationResultValue();
                    return cal1.setCalculationResultValue(calculationResultValue.add(cal2.getCalculationResultValue()));
                })));
}

这里使用了方法引用 ExcelConvertUtil::overallAppraisalCompute 来替代 lambda 表达式 (computeResultExport) -> ExcelConvertUtil.overallAppraisalCompute(computeResultExport)。此外,lambda 表达式中的参数类型可以根据上下文的推断省略。

另外,根据 Java 8 的类型推断,可以省略 CalculationResultDTO 的类型声明

java代码优化使用高阶函数 public static MapString CalculationResultDTO statisticsOverallAppraisalfinal ListComputeResultExportDTO computeResultExports return CollectionUtilsemptyIfNullcomputeResultExpo

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

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