Supposons que nous ayons la fonction de suspension suivante:
suspend fun doSomething(): List<MyClass> { ... }
Si je veux appeler cette fonction dans l'une de mes classes Java Java (que je ne suis pas en mesure de convertir en Kotlin pour l'instant) et obtenir sa valeur de retour, je dois fournir un Continuation<? super List<MyClass>>
comme paramètre (Évidemment).
Ma question est, comment puis-je en implémenter un. Surtout son getContext
getter.
Tout d'abord, ajoutez org.jetbrains.kotlinx:kotlinx-coroutines-jdk8
module à vos dépendances. Dans votre fichier Kotlin, définissez la fonction asynchrone suivante qui correspond à Java style d'écriture des API asynchrones:
fun doSomethingAsync(): CompletableFuture<List<MyClass>> =
GlobalScope.future { doSomething() }
Utilisez maintenant doSomethingAsync
de Java de la même manière que vous utilisez d'autres API asynchrones dans le monde Java.