2017-10-11 4 views
1

Ich habe in meinem Projekt eine Akka-Schicht, die eine Scala Future zurückgibt, und der Teil, der Future erhält, ist Java Geschmack.Transform Scala Future in CompletableFuture

Die Leute im Team wissen nicht, Scala und sie würden lieber CompletableFuture verwenden, da sie die Java 8 API viel besser kennen.

Gibt es eine gute Möglichkeit, eine Scala future in eine CompletableFuture?

Offensichtlich in einer nicht blockierenden Weise.

Grüße.

Antwort

3

Verwenden Sie die scala-java8-compat Bibliothek:

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 
+1

Dank ich einen Blick nehmen, bin ich fragen, was sie in der toCompletableFuture tun, und wenn sie nicht nur einige böse Blockierung CompletableFuture.from machen (Await (Zukunft, X Dauer)) oder etwas in der Art :) – paul

+1

Ich bin nicht gut genug geerdet, um meine Gedanken zu Futures zu geben, aber bitte lesen Sie die Dokumentation zum 'toJava' zusätzlich zu' toCompletableFuture' – Tanjin

+0

Irgendeine Idee, wie nutze das von Java World? – paul