相关疑难解决方法(0)

可选isPresent vs orElse(null)

我在我的项目中更新了Spring 8的依赖项,并被编译错误轰炸,其中方法定义findOne()已被替换findById(),现在返回一个Optional(如果我错了,请纠正我).

在重构时,我遇到了多种我可以选择采用的方法,因此我想要一些关于哪一种是首选的输入.

第一种方法:

ExpectedPackage ep = expectedPackageRepository.findById(1).orElse(null);
if(ep != null){
    ep.setDateModified(new Date());
    expectedPackageRepository.saveAndFlush(ep);
}
Run Code Online (Sandbox Code Playgroud)

第二种方法:

Optional<ExpectedPackage> ep = expectedPackageRepository.findById(1);
if(ep.isPresent()){
    ep.get().setDateModified(new Date());
    expectedPackageRepository.saveAndFlush(ep.get());
}
Run Code Online (Sandbox Code Playgroud)

或者,我错过了第三种更好的方法吗?我经历了几个问题和一些文章,但我没有找到明确的答案.

java java-8 spring-data-jpa

17
推荐指数
3
解决办法
6633
查看次数

标签 统计

java ×1

java-8 ×1

spring-data-jpa ×1