将CompletableFuture(Java 8)转换为Future(Scala)

时间:2017-01-05 18:25:29

标签: scala java-8

我想将下面方法的返回类型更改为Future[Unit]

def send(data: Array[Byte]): CompletableFuture[Void] = {
  val f:CompletableFuture[Void] = client.send(data)
  f
}

我使用的是Scala 2.12.1。有没有方便的方法从Java 8 CompletableFuture转换为Scala' Future

2 个答案:

答案 0 :(得分:25)

答案 1 :(得分:1)

尽管asker在2017年提到了2.12,但现在我们有了2.13,并且转换变得更加容易:

从Scala 2.13开始,标准库包括scala.jdk.FutureConverters,它提供Java至Scala的CompletableFuture / Future隐式转换:

import scala.jdk.FutureConverters._

val scalaFuture = javaFuture.asScala

Convert a Java Future to a Scala Future