【问题标题】:Transform Scala Future into CompletableFuture将 Scala Future 转换为 CompletableFuture
【发布时间】:2017-10-12 03:05:57
【问题描述】:

我的项目中有一个 Akka 层,它返回一个 Scala Future,接收该 Future 的部分是 Java 风格。

团队中的人不了解 Scala,他们更愿意使用 CompletableFuture,因为他们更了解 Java 8 API。

有没有什么好方法可以将Scala future 转换为CompletableFuture?。

显然是以非阻塞方式。

问候。

【问题讨论】:

    标签: java scala java-8


    【解决方案1】:

    使用scala-java8-compat 库:

    import java.util.concurrent.CompletableFuture
    import scala.concurrent.Future
    import scala.compat.java8.FutureConverters._
    
    val scalaFuture = Future.apply("Hello")
    val javaFuture: CompletableFuture[String] = scalaFuture.toJava.toCompletableFuture
    

    【讨论】:

    • 谢谢,我会看看,我想知道他们在 toCompletableFuture 中做了什么,如果他们不只是做一些讨厌的阻塞 CompletableFuture.from(Await(future, X duration)) 或类似的东西那:)
    • 我没有足够的基础来发表我对 Futures 的看法,但除了 toCompletableFuture 之外,请务必阅读 toJava 的文档
    • 知道如何在 Java World 中使用它吗?
    • @paul FutureConverters 是双向的(Scala -> Java like in answer和 Java -> Scala,假设你谈论后者)。在适用的 Java Future 上调用 .toScala,同时您可以使用导入并尝试使用哪些方法可以链接到新转换的 Future
    • 是的,我已经知道了,Java 9 有问题,该库无法使用谢谢!
    猜你喜欢
    • 2019-09-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-12
    • 2015-07-30
    • 2016-05-04
    • 2019-10-25
    • 2020-10-22
    • 2011-11-09
    相关资源
    最近更新 更多