java - 如何修复 Kotlin 编译器错误推断类型为 () -> Unit but Consumer<Throwable?>?预计

标签 java kotlin

我有以下Java方法

 public Disposable getSuperWifiStatus(SuperWifiProvider provider, Consumer<CPE_SuperWifiStatus>   onNext, Consumer<Throwable> onError) {
    return null;
 }

我从 Kotlin 类文件中调用 java 方法,如下所示:

 communicationManager.getSuperWifiStatus(
                SuperWifiProvider.AIRTIES,
                { emitter.onNext(status)},
                { emitter.onError(it)}

这可以编译并运行。

如果我将 java 方法转换为 Kotlin 函数:

  fun getSuperWifiStatus(provider: SuperWifiProvider?, onNext: Consumer<CPE_SuperWifiStatus?>?,   onError: Consumer<Throwable?>?): Disposable? {
    return null
  }

我收到以下编译器错误:

 1. unresolved reference it 
 2. type mismatch inferred type is () -> Unit
    but Consumer<Throwable?>? was expected

不知道如何解决

最佳答案

您可以通过执行以下操作显式指定 lambda 的类型:

Consumer<Throwable?> { emitter.onError(it) }

关于java - 如何修复 Kotlin 编译器错误推断类型为 () -> Unit but Consumer<Throwable?>?预计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61341593/

相关文章:

java - JBoss EAP 6.1 与 Tomcat 7

android - window.reload 在 Webview 中

Android RoleManager删除自己包的角色RoleManager.ROLE_SMS

android - 以编程方式更改芯片小部件样式不起作用 - Android

kotlin - 为什么赋值不是语句

Kotlin 数据类和 LocalDateTime

java - 在 Spring MVC 中,当我使用完 session 作用域 bean 后,是否需要取消绑定(bind)到 session 的 bean 对象?如果是,怎么办?

java - 为什么只有在运行 JUnit 测试时堆空间才会用完?

java - 如何通过 JNDI 从 JBoss 检索数据源

java - Eclipse : Used testNG 7 without built with maven ? 类路径问题