java - 将 Scala 选项转换为 Java 可选

标签 java scala scala-java-interop

我需要将 Scala Option 转换为 Java Optional。我设法写了这个:

public <T> Optional<T> convertOption2Optional(Option<T> option) {
    return option.isDefined() ? Optional.of(option.get()) : Optional.empty();
}

但我不喜欢。

有没有简单的方法,或者内置的 Scala 转换器? 我正在寻找类似的东西:

Options.asJava(option);

最佳答案

在Java中我能想到的最短的方式是:

Optional.ofNullable(option.getOrElse(null))

如果您在 Scala 中编写转换,@RégisJean-Gilles 实际上建议更短:

Optional.ofNullable(option.orNull)

顺便说一句,您必须知道 Scala 直到 Scala 2.12 才支持 Java 8,而 Scala 2.12 尚未正式发布。看着 docs (在发布之前可能会更改)JavaConversions 中没有此类转换。

关于java - 将 Scala 选项转换为 Java 可选,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38325656/

相关文章:

javascript - 如何映射/url/{} 路径变量到 Ext Js 商店

java - 为什么 compareTo 在应该为 false 时返回 true?

java - 在适配器内打开一个对话框返回空值

java - 如何重构scala代码?

scala - 如何将上下文绑定(bind)的 TypeTags 添加到采用类型参数的类型?

java - Scala: "val"作为标识符可能吗?链接到 java 库需要它

java - 类加载器、类差异

json - Play 日期的 : scala Json. 格式

java - scala 运算符作为 java 中的方法

java - 如何使用非 Lambda 函数定义 Spark RDD 转换