java - 使用 scala.Either 来自 Java

标签 java scala scala-java-interop either

我正在使用来自 java 的 scala 库,特别是一个返回 Either[A, B] 的函数。在我的 java 代码中我可以这样做:

scalaFunction.callMethod(new Function<Either<A, B>>() {
   public byte[] apply(Either<A, B> result) {
      B right = result.right().???
   }
}

result.right() 返回一个 RightProjection,但我无法在 Java 中导入它(使用 IntelliJ)。有没有正确的方法来处理 Java 中的 Either 对象?

最佳答案

我没有测试这个,但是根据 RightProjection 的 ScalaDoc ,您应该能够调用 get()。请注意,如果 result 不是 Right,则会引发异常。

为了在 IDE 中使用 Scala 类,IDE 需要了解它们。因此,您需要将 scala-library.jar 添加到 IDE 中指定的构建路径中。对于 IDE(以及 Java 编译器和运行时),Scala 只是一个常规库,它是所有用 Scala 编写的库和程序的依赖项。

关于java - 使用 scala.Either 来自 Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14966321/

相关文章:

java - 我的java代码有什么问题吗?

java - 如何在 JSP 中通过 URL 传递对象?

java - 执行哈希表的包含操作

java - 将 java.lang.String 转换为 Scala 字符串

java - 为 JCE 使用 fips 有什么好处?

scala - 将托管依赖项添加到 Play 2 应用程序

java - 如何在 Java 中创建一个空的不可变 Scala 映射?

scala - 使用andThe减少不同类型的函数

java - Scala 对象在 Java 中的等价物是什么?

java - 互操作 : sharing Datasets of objects or Row between Java and Scala, 两种方式。我将 Scala 数据集操作放在 Java 的中间