将嵌套的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语句,代码更加简洁易读,也提高了代码的效率。

优化后的代码逻辑:

  1. 首先判断billDTO.getBusinessId()是否非空且不等于0L。
  2. 如果满足条件,则查询合同信息。
  3. 如果查询到合同信息,则将合同的开始时间和结束时间赋值给billTaxConfigDTO。
  4. 如果没有查询到合同信息,则将billDTOSort的开始时间和结束时间赋值给billTaxConfigDTO。
  5. 如果billDTO.getBusinessId()为空或等于0L,则直接将billDTOSort的开始时间和结束时间赋值给billTaxConfigDTO。
Java代码优化:将嵌套if语句转换为if else语句

原文地址: https://www.cveoy.top/t/topic/qfsr 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录