优化以下代码: Optional<HrmSalaryCityTemplateVO> hrmSalaryCityTemplateVO = hrmSalaryCityTemplateConfig.getTemplateConfig() .getCities().stream() .filter(city -> cityId.equals(city.getCityId())) .findFirst(); HrmSalaryCityTemplateVO hrmSalaryCityTemplate = hrmSalaryCityTemplateVO.get();
时间: 2024-02-14 20:11:46 浏览: 66
上面的代码可以优化为以下代码:
```
HrmSalaryCityTemplateVO hrmSalaryCityTemplate = hrmSalaryCityTemplateConfig.getTemplateConfig()
.getCities().stream()
.filter(city -> cityId.equals(city.getCityId()))
.findFirst()
.orElse(null);
if (Objects.isNull(hrmSalaryCityTemplate) || CollectionUtils.isEmpty(hrmSalaryCityTemplate.getSchemes())) {
HrmSalarySsCorpRecordVO hrmSalarySsCorpRecordVO = new HrmSalarySsCorpRecordVO();
hrmSalarySsCorpRecordVO.setIsExistenceDefault(false);
return hrmSalarySsCorpRecordVO;
}
return HrmSalarySSCorpTemplateConverter.convertDefaultTemplate(hrmSalaryCityTemplate);
```
优化后的代码使用了 orElse() 方法来避免使用 get() 方法时可能出现的 NoSuchElementException 异常,并且将 filter() 方法的调用和 findFirst() 方法的调用合并,并使用了 Objects 工具类的 isNull() 方法来避免空指针异常。另外,将 HrmSalarySSCorpTemplateConverter.convertDefaultTemplate() 方法的调用与 if 语句合并,这样可以减少一次对象创建。
阅读全文