使用高阶函数消除 Java 代码重复 (lambda 示例)
可以使用一个高阶函数来消除重复代码。首先,将两个 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参数传入。这样就消除了重复代码,并且使得代码更加清晰和可维护。
原文地址: https://www.cveoy.top/t/topic/qDEB 著作权归作者所有。请勿转载和采集!