【发布时间】:2016-09-23 08:45:36
【问题描述】:
我的问题是我有两个或多个 Optionals 包装不同的类型。 我想执行一个只有在所有选项都不为空时才能执行的操作。
目前我是这样做的:
Optional<PatientCase> caseOptional = patientCaseRepository.findOneById(caseId);
Optional<User> userOptional = userRepository.findOneById(caseId);
if(userOptional.isPresent() && caseOptional.isPresent()) {
caseOptional.get().getProcess().setDesigner(userOptional.get());
}
在我看来,if 条件感觉不对。 我知道可以使用 orElse 链接 Optionals。 但就我而言,我不想要一个合乎逻辑的Else。 有没有办法创建 AND 运算符来组合两个或多个 Optional 类似于这个伪代码?
caseOptional.and.userOptional.ifPresent((theCase,user) -> //Perform Stuff);
【问题讨论】:
标签: java java-8 java-stream optional logical-operators