2017-10-11 3 views
1

J'ai dans mon projet une couche Akka qui renvoie un Scala Future, et la partie qui reçoit ce Futur est Java.Transformer Scala Future en CompletableFuture

Les membres de l'équipe ne connaissent pas Scala et préfèrent utiliser CompletableFuture car ils connaissent beaucoup mieux l'API Java 8.

Y a-t-il un bon moyen de transformer un Scala future en un CompletableFuture?

De toute évidence, de manière non bloquante.

Cordialement.

Répondre

3

Utilisez la bibliothèque 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 
+1

Merci, je vais jeter un oeil, je me demande ce qu'ils font dans le toCompletableFuture, et si elles ne font que certains CompletableFuture.from de blocage méchant (Attendent (futur, X durée)) ou quelque chose comme ça :) – paul

+1

Je ne suis pas assez bien ancré pour donner mes pensées sur Futures, mais s'il vous plaît assurez-vous de lire la documentation pour le 'toJava' en plus de' toCompletableFuture' – Tanjin

+0

utiliser cela de Java World? – paul