根据上面的需求,有没有更加优化的写法
时间: 2023-06-22 11:27:00 浏览: 99
Mysql根据时间查询日期的优化技巧
是的,我们可以使用Java 8中的Optional类来更加优雅地处理空对象。在Java 8中,Optional类是一种包装器类型,它可以将值包装在内,或者表示值不存在。使用Optional类可以使我们的代码更加简洁和可读。
以下是使用Optional类对你提供的代码块进行优化的示例:
```
private void deliverForToolRecommad(List<DeliverDepartingEmploveeVO>deliverDepartingEmployeeVOList) {
RecommendVo recommendVo = new RecommendVo();
List<String> statusList = new ArrayList<>(Arrays.asList("4", "1", "7"));
recommendVo.setIntroduceStatusForQry(statusList);
List<RecommendEntity> recommendEntityList = DBUtil.selectList("recommend query RecommendList", recommendVo);
if (recommendEntityList.stream().anyMatch(recommendEntity -> deliverDepartingEmployeeVOList.stream().anyMatch(p->p.equals(recommendEntity.getEvaluator())))){
recommendEntityList.stream()
.filter(recommendEntity -> recommendEntity.getBizNo() != null)
.forEach(recommendEntity -> {
// 执行原来的逻辑
DeliverDepartingEmployeeVO vo = new DeliverDepartingEmployeeVO();
vo.setNextAppPerson("yangjunjie-yfzx,dengxiaoqing-yfzx");
deliverDepartingEmployeeVOList.add(vo);
});
}
}
```
在这个优化版本中,我们使用了Java 8中的Stream API来对recommendEntityList进行筛选,只保留BizNo不为空的对象,并使用forEach方法对这些对象进行处理。这样,我们就可以省去了if语句和对空对象的处理逻辑,使代码更加简洁和易于理解。
阅读全文