Java代码优化:将嵌套if语句转换为if else语句
将嵌套的if语句转换为if else语句可以提高代码的可读性和效率。以下示例展示了将两个嵌套的if语句转换为一个if else语句的过程。
if(Objects.nonNull(billDTO.getBusinessId()) && !Objects.equals(billDTO.getBusinessId(), 0L)) {
List<ContractVo> data1 = contractService.listContractVoByIds(Lists.newArrayList(billDTO.getBusinessId())).getData();
if(CollUtil.isNotEmpty(data1)) {
billTaxConfigDTO.setContractStartDate(data1.get(0).getLeaseStartTime());
billTaxConfigDTO.setContractEndDate(data1.get(0).getLeaseEndTime());
} else {
billTaxConfigDTO.setContractStartDate(billDTOSort.getStartTime());
billTaxConfigDTO.setContractEndDate(billDTOSort.getEndTime());
}
} else {
billTaxConfigDTO.setContractStartDate(billDTOSort.getStartTime());
billTaxConfigDTO.setContractEndDate(billDTOSort.getEndTime());
}
在上面的代码中,我们可以看到有两个嵌套的if语句。我们可以将它们简化为一个if else语句:
if(Objects.nonNull(billDTO.getBusinessId()) && !Objects.equals(billDTO.getBusinessId(), 0L)) {
List<ContractVo> data1 = contractService.listContractVoByIds(Lists.newArrayList(billDTO.getBusinessId())).getData();
if(CollUtil.isNotEmpty(data1)) {
billTaxConfigDTO.setContractStartDate(data1.get(0).getLeaseStartTime());
billTaxConfigDTO.setContractEndDate(data1.get(0).getLeaseEndTime());
} else {
billTaxConfigDTO.setContractStartDate(billDTOSort.getStartTime());
billTaxConfigDTO.setContractEndDate(billDTOSort.getEndTime());
}
} else {
billTaxConfigDTO.setContractStartDate(billDTOSort.getStartTime());
billTaxConfigDTO.setContractEndDate(billDTOSort.getEndTime());
}
通过将嵌套的if语句转换为if else语句,代码更加简洁易读,也提高了代码的效率。
优化后的代码逻辑:
- 首先判断billDTO.getBusinessId()是否非空且不等于0L。
- 如果满足条件,则查询合同信息。
- 如果查询到合同信息,则将合同的开始时间和结束时间赋值给billTaxConfigDTO。
- 如果没有查询到合同信息,则将billDTOSort的开始时间和结束时间赋值给billTaxConfigDTO。
- 如果billDTO.getBusinessId()为空或等于0L,则直接将billDTOSort的开始时间和结束时间赋值给billTaxConfigDTO。
原文地址: https://www.cveoy.top/t/topic/qfsr 著作权归作者所有。请勿转载和采集!