当前位置: 首页 > 知识库问答 >
问题:

不能使用提供的参数调用下列函数

濮阳唯
2023-03-14

代码如下:

getUsersObservable()
    .subscribeOn(Schedulers.io())
    //.observeOn(AndroidSchedulers.mainThread())
    .map { user: User ->
        user.email = String.format("%s@rxjava.wtf", user.name)
        user.name = user.name!!.toUpperCase()
    }
    .subscribe(object : Observer<User> {
        override fun onComplete() {
        }

        override fun onSubscribe(d: Disposable) {
        }

        override fun onNext(t: User) {
        }

        override fun onError(e: Throwable) {
        }
    })

我得到以下错误:

/users/johann/work/dev/kotlin/rxjava-walkthrough-kotlin/app/src/test/java/ktplay/rxkotlinplay.kt:(49,14):不能使用提供的参数调用以下函数:@checkreturnvalue@schedulersupport public final fun subscribe(p0:((Unit)->Unit)!):disable!在io.reactivex.observable@SchedulerSupport public final fun subscribe(p0:Observer):在io.reactivex.observable@CheckReturnValue@SchedulerSupport public final fun subscribe(p0:Consumer!)中定义的单位:Disposable!在io.reactivex.observable中定义

此错误发生在带有subscribe的行上。

共有1个答案

汪凌
2023-03-14

当前,map运算符采用user并返回unit而不是user。它应该是这样的:

.map { user: User ->
    user.email = String.format("%s@rxjava.wtf", user.name)
    user.name = user.name!!.toUpperCase()
    user
}
 类似资料:
  • 在下面的代码中,我为数组下标运算符提供了默认参数。 但是,编译器生成了一个错误: 但是,如果我为函数调用操作符提供默认参数。 很好用。 所以,我有一个问题: 为什么不允许数组下标运算符的默认参数

  • 我包括7个错误,都是实现错误??这些代码是在知识有限的情况下,1比1地从主要活动转换成片段的,我找到了一些解决方案,但仍然不知道如何应用到我的代码中。

  • 我刚刚开始学习Node,我正在尝试使用Node和Express构建一个Web应用程序。我的app.js文件中有以下代码,具有以下目录结构。 目录结构: -js公司- 运行命令node app并转到localhost:3000后。我得到以下错误。我想它不喜欢这一行的字符串- 错误消息: TypeError:字符串不是函数在Fnode_modules(C:\myapp\Express\node_mod

  • 本文向大家介绍PowerShell函数参数使用智能提示功能例子,包括了PowerShell函数参数使用智能提示功能例子的使用技巧和注意事项,需要的朋友参考一下 本文介绍在自定义PowerShell函数时,如何设置函数可以智能提示参数值。参数值的智能提示这个功能是在PowerShell 3.0中出现的新功能。 在PowerShell 3.0版本中,出现了一项新的功能,那就是参数值的智能提示。当然,不

  • 问题内容: 我有一个php文件,其中定义了许多功能,比如: 我想打电话给使用 AJAX 。谢谢您的帮助 问题答案: 您不能直接通过AJAX调用来调用PHP函数,但是您可以这样做: PHP: JS:

  • 问题内容: 我发现C#中的命名参数功能在某些情况下非常有用。 如果要在JavaScript中使用该怎么办? 我不想要的是: 我已经使用过这种方法。还有另一种方法吗? 我可以使用任何库来做到这一点。 问题答案: ES2015及更高版本 在ES2015中, 参数解构可用于模拟命名参数。这将要求调用者传递一个对象,但是如果您还使用默认参数,则可以避免函数内部的所有检查: ES5 有一种方法可以接近您想要