java - Scala Option.orElse 等效于 Java Optional

标签 java scala functional-programming monads option-type

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));
    }

useruserId 都是 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/

相关文章:

scala - 使用 Play Framework 的 Cached API 在多语言网站中缓存操作

c++ - 编写 lambda 函数 vector 时出现段错误

java - Json如何读取混合子类的数组?

Java:为什么 Collection.addAll 不能接受 Iterables?

scala - 如何在 Scala 中对列表中的两个邻居求和

scala - 如何从 Akka HTTP POST 请求中读取 JSON 正文并将最终响应作为 JSON 数组发送

javascript - ReactJS/FP state 和 this 的区别

types - 求和类型的结构类型

java - 额外的 Intent

java - 从字符串生成 ASCII 图片