如何对这样的代码做优化,一个for循环加两个if,怎么样才能让代码看着好看一些呢,谢谢大家
多抽一些公共方法来调用,比如第二个if块中的代码就可以这样
你把代码复制出来一下,我帮你看看
boolean isContainsPlanFlag = recordSet.contains(planFlag);
boolean isNotRepay = repaymentPlan.getRepaymentStatus() == 0;
boolean isGreaterInterest = recordMap.get(planFlag).compareTo(repaymentPlan.getExpectRepayInterest()) >= 0;
if (isContainsPlanFlag && isNotRepay && isGreaterInterest) {
plan.setId(repaymentPlan.getId());
plan.setRepaymentStatus(1);
} else if(!isContainsPlanFlag && !isNotRepay){
plan.setId(repaymentPlan.getId());
plan.setRepaymentStatus(0);
} else {
continue;
}
if (repaymentPlanMapper.updateRepaymentPlan(plan) != 1) {
throw new ServiceException("更新还款计划状态失败");
}
改成这样了,还有其他方法吗
【以下回答由 GPT 生成】
为了提高Java代码的可读性,可以采取以下几个方面的优化措施:
REPAYMENT_STATUS_PENDING
和REPAYMENT_STATUS_COMPLETED
来代替。final int REPAYMENT_STATUS_PENDING = 0;
final int REPAYMENT_STATUS_COMPLETED = 1;
if (!recordSet.contains(planFlag)) {
continue;
}
// 检查计划的还款利息是否小于等于真实还款利息,并且还款状态为0
if (recordMap.get(planFlag).compareTo(repaymentPlan.getExpectRepayInterest()) >= 0
&& repaymentPlan.getRepaymentStatus() == REPAYMENT_STATUS_PENDING) {
// 更新还款计划状态
updateRepaymentPlan(repaymentPlan, REPAYMENT_STATUS_COMPLETED);
} else {
// 查还款状态是否为REPAYMENT_STATUS_COMPLETED
if (repaymentPlan.getRepaymentStatus() == REPAYMENT_STATUS_COMPLETED) {
// 更新还款计划状态
updateRepaymentPlan(repaymentPlan, REPAYMENT_STATUS_PENDING);
}
}
updateRepaymentPlan
:private void updateRepaymentPlan(RepaymentPlan plan, int status) {
plan.setId(plan.getId());
plan.setRepaymentStatus(status);
if (repaymentPlanMapper.updateRepaymentPlan(plan) != 1) {
throw new ServiceException("更新还款计划状态失败");
}
}
通过以上的优化措施,可以使代码更加易读、易懂和美观。
【相关推荐】