次のサスペンド機能があると仮定します。
suspend fun doSomething(): List<MyClass> { ... }
既存のJavaクラス(今のところKotlinに変換できない)の1つでこの関数を呼び出し、その戻り値を取得する場合は、Continuation<? super List<MyClass>>
そのパラメーターとして(当然)。
私の質問は、どうすれば実装できますか。特にそのgetContext
ゲッター。
まず、org.jetbrains.kotlinx:kotlinx-coroutines-jdk8
依存関係へのモジュール。 Kotlinファイルで、Java非同期APIの記述スタイルに対応する次の非同期関数を定義します。
fun doSomethingAsync(): CompletableFuture<List<MyClass>> =
GlobalScope.future { doSomething() }
ここで、Javaの世界で他の非同期APIを使用するのと同じ方法で、JavaからdoSomethingAsync
を使用します。