在Java类中调用Kotlin暂停函数

假设我们具有以下暂停功能:

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

如果要在我现有的Java类之一中调用此函数(暂时无法将其转换为Kotlin)并获取其返回值,则必须提供a Continuation<? super

List<MyClass>>作为其参数(很明显)。

我的问题是,我该如何实施。特别是它的getContext吸气剂。

回答:

首先,将org.jetbrains.kotlinx:kotlinx-coroutines-

jdk8模块添加到您的依赖项中。在您的Kotlin文件中,定义以下与Java编写异步API样式相对应的异步函数:

fun doSomethingAsync(): CompletableFuture<List<MyClass>> =

GlobalScope.future { doSomething() }

现在doSomethingAsync,以与在Java世界中使用其他异步API相同的方式在Java中使用。

以上是 在Java类中调用Kotlin暂停函数 的全部内容, 来源链接: utcz.com/qa/432244.html

回到顶部