Вызовите функцию приостановки Kotlin в классе Java - PullRequest
0 голосов
/ 18 октября 2018

Предположим, у нас есть следующая функция приостановки:

suspend fun doSomething(): List<MyClass> { ... }

Если я хочу вызвать эту функцию в одном из моих существующих классов Java (который я пока не могу преобразовать в Kotlin) и получитьего возвращаемое значение я должен предоставить Continuation<? super List<MyClass>> в качестве параметра (очевидно).

Мой вопрос: как я могу это реализовать.Особенно его getContext геттер.

1 Ответ

0 голосов
/ 19 октября 2018

Сначала добавьте модуль org.jetbrains.kotlinx:kotlinx-coroutines-jdk8 в свои зависимости.В вашем файле Kotlin определите следующую асинхронную функцию, которая соответствует стилю Java написания асинхронных API:

fun doSomethingAsync(): CompletableFuture<List<MyClass>> =
    GlobalScope.future { doSomething() }

Теперь используйте doSomethingAsync из Java так же, как вы используете другие асинхронные API в мире Java..

...