Не удалось определить тип - PullRequest
0 голосов
/ 15 ноября 2018

Попытка добавить композитный одноразовый. используя следующий код:

 compositeDisposable.add(
        animalsObservable
            .subscribeOn(Schedulers.io())
            .observeOn(AndroidSchedulers.mainThread())
            .filter { s -> s.toLowerCase().startsWith("c") }
            .map(object : Function<String, String>()
            {
                @Throws(Exception::class)
                fun apply(s: String): String
                {
                    return s.toUpperCase()
                }
            })
            .subscribeWith(animalsObserverAllCaps)
    )
    }

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

Ошибка вывода типа: забавная карта (p0: функция!): Наблюдаемая! не может применяться к ()
Несоответствие типов: предполагаемый тип есть, но функция! ожидалось
Ожидается один аргумент типа для интерфейса Функция

1 Ответ

0 голосов
/ 15 ноября 2018

Я бы ожидал, что это будет так просто:

.map { it.toUpperCase() }

Вместо

.map(object : Function<String, String>()
{
    @Throws(Exception::class)
    fun apply(s: String): String
    {
        return s.toUpperCase()
    }
})

Но в любом случае вы, вероятно, не используете io.reactivex.functions.Function, следовательно, ошибка.Если вы действительно не хотите использовать лямбду, то:

.map(object : io.reactivex.functions.Function<String, String> {
    override fun apply(t: String): String {
        return t.toUpperCase()
    }
})

Или просто импортируйте io.reactivex.functions.Function, а затем используйте Function.

...