我有以下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/