Option
定义了以下方法:
def orElse[B >: A](alternative : => scala.Option[B]) : scala.Option[B]
我试图在 Java 8 中找到类似的东西。我得出了这个表达式:
private String userId() {
return user.map(User::getUsername)
.orElse(this.userId.orElseThrow(RuntimeException::new));
}
user
和 userId
都是 Optional
,但不知何故这会因 RuntimeException
而崩溃,即使 user
已定义。
在 Java 中是否有比开始在 Optional
上制作条件更实用的东西?
最佳答案
您正在寻找的是 Optional.or Java 9 中引入的方法:
public Optional<T> or(Supplier<? extends Optional<? extends T>> supplier)
关于java - Scala Option.orElse 等效于 Java Optional,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33411938/