可以使用一个高阶函数来消除重复代码。首先,将两个 case 中的代码块提取出来作为一个函数,然后将需要根据不同情况执行的代码作为参数传入该函数。

private List<Appraisee> getAppraisees(AppraiseesConfig appraiseesConfig, int activityId, String empGroupId, Function<String, List<Appraisee>> getAppraiseesByEmpGroup) {
    return unionAllRelationAppraisees(appraiseesConfig.getAppraisees(activityId), getAppraiseesByEmpGroup, empGroupId);
}

switch (dataType) {
    case BASE_DATA:
        return getAppraisees(appraiseesConfig, activityId, empGroupId, (g) -> findExamineBasicByEmpGroup(g, activityId));
    case EXAMINER_APPRAISEES_DATA:
        return getAppraisees(appraiseesConfig, activityId, empGroupId, (g) -> findEvaluationAppraiseesByEmpGroup(g, activityId));
    default:
        break;
}

在这个例子中,我们将重复的代码块提取出来作为函数getAppraisees,并将需要根据不同情况执行的代码作为getAppraiseesByEmpGroup参数传入。这样就消除了重复代码,并且使得代码更加清晰和可维护。

使用高阶函数消除 Java 代码重复 (lambda 示例)

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

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