优化这段代码: boolean payeeNameIsBlank = true;boolean pidAndInvoiceNoIsBlank = true; Integer payeeName = 743; int pid = 700; for (ConditionItemInfo cond : ConditionItemInfoList){ if (StringUtils.isEmpty(cond.getValue())) continue; if (payeeName.compareTo(cond.getReportFieldID()) == 0) payeeNameIsBlank = false; if (pid == cond.getReportFieldID()) pidAndInvoiceNoIsBlank = false; if (800 == (cond.getReportFieldID()) pidAndInvoiceNoIsBlank = false; } if (payeeNameIsBlank) throw new Exception("请输入payeeName"); if (pidAndInvoiceNoIsBlank) throw new Exception("请输入pid");
时间: 2024-04-21 12:27:14 浏览: 16
优化后的代码如下:
boolean payeeNameIsBlank = true;
boolean pidAndInvoiceNoIsBlank = true;
Integer payeeName = 743;
int pid = 700;
for (ConditionItemInfo cond : ConditionItemInfoList) {
if (StringUtils.isEmpty(cond.getValue())) {
continue;
}
int reportFieldID = cond.getReportFieldID();
if (payeeName.equals(reportFieldID)) {
payeeNameIsBlank = false;
}
if (pid == reportFieldID || 800 == reportFieldID) {
pidAndInvoiceNoIsBlank = false;
}
}
if (payeeNameIsBlank) {
throw new Exception("请输入payeeName");
}
if (pidAndInvoiceNoIsBlank) {
throw new Exception("请输入pid");
}
主要优化如下:
1. 在 for 循环中,将获取 reportFieldID 的操作提取出来,避免多次调用方法;
2. 将 payeeName 的比较改成使用 equals 方法,避免使用 compareTo 方法;
3. 将 pid 和 invoiceNo 的比较合并成一个判断条件,避免重复代码。