【发布时间】:2017-10-12 03:05:57
【问题描述】:
我的项目中有一个 Akka 层,它返回一个 Scala Future,接收该 Future 的部分是 Java 风格。
团队中的人不了解 Scala,他们更愿意使用 CompletableFuture,因为他们更了解 Java 8 API。
有没有什么好方法可以将Scala future 转换为CompletableFuture?。
显然是以非阻塞方式。
问候。
【问题讨论】:
我的项目中有一个 Akka 层,它返回一个 Scala Future,接收该 Future 的部分是 Java 风格。
团队中的人不了解 Scala,他们更愿意使用 CompletableFuture,因为他们更了解 Java 8 API。
有没有什么好方法可以将Scala future 转换为CompletableFuture?。
显然是以非阻塞方式。
问候。
【问题讨论】:
使用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 之外,请务必阅读 toJava 的文档
Future 上调用 .toScala,同时您可以使用导入并尝试使用哪些方法可以链接到新转换的 Future