如果optional.isPresent()则使用可选值作为方法参数

Ste*_*rby 2 java optional java-8

我有一个包含几个选项的对象,其中可选项不为null,我想将其值作为参数传递给需要多个参数的方法.

目前我有一个代码块,如下所示:

if (dealerRequest.getIsApproved().isPresent()) {                
    repository.updateDealerPartnerFinanceIsApproved(dealerRequest.getDealerId(), dealerRequest.getIsApproved().get());
}
if (dealerRequest.getIsOptedIn().isPresent()) {                
    repository.updateDealerPartnerFinanceOptedIn(dealerRequest.getDealerId(), dealerRequest.getIsOptedIn().get());
}
Run Code Online (Sandbox Code Playgroud)

我知道检查该值是存在的,然后稍后获取它比以前的空检查更有用; 但是我不知道在这种情况下如何使用它们呢?

理想情况下,我会将.map()作为我仓库中方法的可选项,但后来我不知道如何传递(如果可以的话)第二个参数?有更简洁的方法吗?

P.J*_*sch 7

你也可以使用ifPresent():

dealerRequest.getIsApproved().ifPresent(
  approved -> repository.updateDealerPartnerFinanceIsApproved(dealerRequest.getDealerId(), approved));
Run Code Online (Sandbox Code Playgroud)

并相应地用于第二个可选项.