Optional isPresent vs orElse(null)
在我的项目中,我正在将依赖项更新到Spring 5,并且被编译错误轰炸,其中的方法定义已被替换为现在返回一个(如果我错了,请纠正我)。findOne()
findById()
Optional
在重构时,我遇到了多种我可以选择采用的方法,因此我希望对哪一种更可取提供一些意见。
第一种方法:
ExpectedPackage ep = expectedPackageRepository.findById(1).orElse(null);
if(ep != null){
ep.setDateModified(new Date());
expectedPackageRepository.saveAndFlush(ep);
}
第二种方法:
Optional<ExpectedPackage> ep = expectedPackageRepository.findById(1);
if(ep.isPresent()){
ep.get().setDateModified(new Date());
expectedPackageRepository.saveAndFlush(ep.get());
}
还是我错过了第三种更好的方法?我经历了几个问题和几篇文章,但我没有找到一个明确的答案。