使用枚举和Map优化代码:将两个方法封装为通用方法
可以将两个方法封装为一个通用方法,使用枚举和Map进行优化。首先,创建一个枚举类来表示需要转换的数据类型:
public enum SheetDataType {
POSITION_DETAIL_DATA {
@Override
public List<Object> convert(ComputeResultExportDTO result, Map<String, List<BigDecimal>> scoreGroup, Map<String, List<BigDecimal>> honestScoreGroup) {
List<Object> sheetData = new ArrayList<>();
sheetData.add(result.getDeptName());
sheetData.add(result.getEmpName());
sheetData.add(result.getEmpCode());
sheetData.add(result.getLevelGroup());
sheetData.addAll(CollectionUtils.emptyIfNull(scoreGroup.get(result.getExamineEvaluationId())));
sheetData.add(result.getSuggestedLevel());
sheetData.addAll(CollectionUtils.emptyIfNull(honestScoreGroup.get(result.getExamineEvaluationId())));
sheetData.add(result.getTotalScore());
sheetData.add(result.getWeightGroupName());
return sheetData;
}
},
POSITION_DATA {
@Override
public List<Object> convert(ComputeResultExportDTO result, Map<String, List<BigDecimal>> scoreGroup, Map<String, List<BigDecimal>> honestScoreGroup) {
List<Object> sheetData = new ArrayList<>();
sheetData.add(result.getLevelName());
sheetData.addAll(CollectionUtils.emptyIfNull(scoreGroup.get(result.getExamineEvaluationId())));
sheetData.add(result.getSuggestedLevel());
sheetData.add(result.getTotalScore());
sheetData.add(result.getWeightGroupName());
return sheetData;
}
};
public abstract List<Object> convert(ComputeResultExportDTO result, Map<String, List<BigDecimal>> scoreGroup, Map<String, List<BigDecimal>> honestScoreGroup);
}
然后,创建一个通用的方法来转换数据:
private static List<Object> convertSheetData(SheetDataType dataType, ComputeResultExportDTO result,
Map<String, List<BigDecimal>> scoreGroup, Map<String, List<BigDecimal>> honestScoreGroup) {
return dataType.convert(result, scoreGroup, honestScoreGroup);
}
使用示例:
List<Object> positionDetailData = convertSheetData(SheetDataType.POSITION_DETAIL_DATA, result, scoreGroup, honestScoreGroup);
List<Object> positionData = convertSheetData(SheetDataType.POSITION_DATA, result, scoreGroup, honestScoreGroup);
通过使用枚举和Map,可以将两个方法封装为一个通用的方法,并根据不同的数据类型进行转换。这样可以提高代码的可扩展性和可维护性。
原文地址: https://www.cveoy.top/t/topic/mvvh 著作权归作者所有。请勿转载和采集!