优化以下代码:public HrmSalarySsCorpRecordVO queryBeforeAdding(String cityId) { Optional<HrmSalaryCityTemplateVO> hrmSalaryCityTemplateVO = hrmSalaryCityTemplateConfig.getTemplateConfig() .getCities().stream() .filter(city -> cityId.equals(city.getCityId())) .findFirst(); HrmSalaryCityTemplateVO hrmSalaryCityTemplate = hrmSalaryCityTemplateVO.get(); if (CollectionUtils.isNotEmpty(hrmSalaryCityTemplate.getSchemes())){ return HrmSalarySSCorpTemplateConverter.convertDefaultTemplate(hrmSalaryCityTemplate); } HrmSalarySsCorpRecordVO hrmSalarySsCorpRecordVO = new HrmSalarySsCorpRecordVO(); hrmSalarySsCorpRecordVO.setIsExistenceDefault(false); return hrmSalarySsCorpRecordVO; }
时间: 2024-02-14 11:11:46 浏览: 22
可以优化的地方如下:
1. 使用 Optional 的 ifPresent() 方法来避免使用 get() 方法时可能出现的 NoSuchElementException 异常。
2. 将 stream() 方法的调用和 filter() 方法的调用合并,这样可以减少一次迭代。
3. 将 HrmSalarySSCorpTemplateConverter.convertDefaultTemplate() 方法的调用与 if 语句合并,这样可以减少一次对象创建。
4. 将 HrmSalarySsCorpRecordVO 对象的实例化和 set() 方法的调用合并。
优化后的代码如下:
```
public HrmSalarySsCorpRecordVO queryBeforeAdding(String cityId) {
HrmSalarySsCorpRecordVO hrmSalarySsCorpRecordVO = new HrmSalarySsCorpRecordVO();
hrmSalarySsCorpRecordVO.setIsExistenceDefault(false);
hrmSalaryCityTemplateConfig.getTemplateConfig().getCities().stream()
.filter(city -> cityId.equals(city.getCityId()))
.findFirst()
.ifPresent(hrmSalaryCityTemplate -> {
if (CollectionUtils.isNotEmpty(hrmSalaryCityTemplate.getSchemes())) {
hrmSalarySsCorpRecordVO = HrmSalarySSCorpTemplateConverter.convertDefaultTemplate(hrmSalaryCityTemplate);
}
});
return hrmSalarySsCorpRecordVO;
}
```