Ни одна из следующих функций не может быть вызвана с предоставленными аргументами - PullRequest
0 голосов
/ 06 января 2019

Вот код:

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) {
        }
    })

Я получаю следующую ошибку:

/ Пользователи / Johann / Работа / Dev / Котлин / rxjava-пошаговое руководство-Котлин / приложение / SRC / тест / Java / ktplay / RxKotlinPlay.kt: (49, 14): ни одна из следующих функций не может быть вызвана с помощью предоставлены аргументы: @CheckReturnValue @SchedulerSupport public final весело подписаться (p0: ((Unit) -> Unit)!): Одноразовый! определяется в io.reactivex.Observable @SchedulerSupport публичное финальное веселье подписка (p0: Observer): единица, определенная в io.reactivex.Observable @CheckReturnValue @SchedulerSupport public подписка на финальное веселье (p0: Consumer!): одноразовая! определяется в io.reactivex.Observable

Эта ошибка возникает в строке с подпиской.

1 Ответ

0 голосов
/ 06 января 2019

В настоящее время ваш оператор map принимает User и возвращает Unit вместо User. Это должно выглядеть так:

.map { user: User ->
    user.email = String.format("%s@rxjava.wtf", user.name)
    user.name = user.name!!.toUpperCase()
    user
}
...