当前位置: 首页 > 面试题库 >

在Java类中调用Kotlin暂停函数

郗浩言
2023-03-14
问题内容

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

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中使用。



 类似资料:
  • 我试图将库从Kotlin转换为Java,但这个方法限制了我: 如何在Java中实现

  • 我查看了分支的https://github.com/android/architectory-samples/tree/dev-dagger/app/src/main/java/com/example/android/android/dev-dagger/android/dev-dagger/android/dev-dagger/android/dev-dagger/app/src/main/ja

  • 在chrome中调试时,即使没有设置断点,脚本也总是在调试器中暂停,如果暂停未暂停,它会再次暂停自己。 能做些什么呢?

  • 问题内容: 如何使用Java脚本暂停和恢复setInterval()函数? 例如,也许我有一个秒表来告诉您您浏览网页的秒数。有一个“暂停”和“恢复”按钮。 clearInterval()在此处不起作用 的原因是,如果用户在第40秒和第800毫秒单击“暂停”按钮,则当他单击“恢复”按钮时,经过的秒数必须在之后增加1 200毫秒。如果我在计时器变量上使用clearInterval()函数(单击暂停按钮

  • 例外情况。kt: 在科特林: 它在kotlin中工作,函数是内联的。 但是当在Java代码中使用时,它就是不能内联,仍然是一个正常的静态方法调用(从反编译的内容中可以看出)。 像这样的东西:

  • 让我们假设我在科特林有一门课,如下所示 此外,让我们定义一个内插函数生成电子邮件域,它基于给定域的名称生成电子邮件地址 现在,正如有人说Kotlin是100%可与Java互操作的,我如何在Java类中使用这个中缀函数? 上面使用infix可能不合适,但我想知道如何在Java中使用。 如果我的理解有误,请纠正。