gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 08:41:48 24 4
gpt4 key购买 nike

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

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com