优化Java代码:获取上个月的数据并处理
以下代码展示了如何获取当前月和上个月的建设进度数据,并将上个月的数据添加到当前月的数据中。
ConstructionProgress constructionProgress = baseMapper.selectDataByMonthNew(month, deptId);
// 如果当前月没有数据,则创建新对象
if (constructionProgress == null) {
constructionProgress = new ConstructionProgress();
}
// 获取上周数据
String lastMonth = DateUtil.format(DateUtil.offsetMonth(date, -1), DatePattern.NORM_MONTH_PATTERN);
ConstructionProgress lastProgress = baseMapper.selectDataByMonthNew(lastMonth, deptId);
// 如果上个月有数据,则将上个月的数据添加到当前月的数据中
if (lastProgress != null) {
constructionProgress.setLastProgressList(lastProgress.getLastProgressList());
}
return constructionProgress;
优化方案:
- 将判断是否为空的代码提前,避免后面重复判断。
- 将创建对象的代码移到判断为空的代码块中,避免重复创建对象。
- 优化代码结构,使逻辑更加清晰易懂。
优化后的代码:
ConstructionProgress constructionProgress = baseMapper.selectDataByMonthNew(month, deptId);
// 如果当前月没有数据,则创建新对象
if (constructionProgress == null) {
constructionProgress = new ConstructionProgress();
}
// 获取上周数据
String lastMonth = DateUtil.format(DateUtil.offsetMonth(date, -1), DatePattern.NORM_MONTH_PATTERN);
ConstructionProgress lastProgress = baseMapper.selectDataByMonthNew(lastMonth, deptId);
// 如果上个月有数据,则将上个月的数据添加到当前月的数据中
if (lastProgress != null) {
constructionProgress.setLastProgressList(lastProgress.getLastProgressList());
}
return constructionProgress;
通过以上优化,代码逻辑更加清晰易懂,避免了重复判断和创建对象,提高了代码效率。
原文地址: https://www.cveoy.top/t/topic/ol5H 著作权归作者所有。请勿转载和采集!