[英]Scala and Java Options do if present if not do something else construct
[英]How to do Java Optional if present do something or else throw?
我想要做的是,如果客户存在则更新客户,但如果没有客户则抛出异常。 但是我找不到正确的 stream function 来做到这一点。 我怎样才能做到这一点?
public Customer update(Customer customer) throws Exception {
Optional<Customer> customerToUpdate = customerRepository.findById(customer.getId());
customerToUpdate.ifPresentOrElse(value -> return customerRepository.save(customer),
throw new Exception("customer not found"));
}
我无法返回来自 save function 的值,因为它说它是 void 方法并且不期望返回值。
正如 Guillaume F. 已经在评论中所说,你可以在这里使用orElseThrow
:
Customer customer = customerRepository.findById(customer.getId())
.orElseThrow(() -> new Exception("customer not found"));
return customerRepository.save(customer);
顺便说一句,避免抛出Exception
,因为该异常范围太广。 使用更具体的类型,例如NotFoundException
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.