类型推断失败 Kotlin rxjava 映射使用
Type inference failed Kotlin rxjava map use
正在尝试添加 compositeDisposable。使用以下代码:
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)
)
}
但是,我收到以下错误:
类型推断失败:fun map(p0: Function!):可观察!
不能应用于
()
类型不匹配:推断类型只是函数!预计
接口函数需要一个类型参数
我希望它像这样简单:
.map { it.toUpperCase() }
而不是
.map(object : Function<String, String>()
{
@Throws(Exception::class)
fun apply(s: String): String
{
return s.toUpperCase()
}
})
但无论如何您可能没有使用 io.reactivex.functions.Function
,因此出现错误。如果你真的不想使用 lambda 那么:
.map(object : io.reactivex.functions.Function<String, String> {
override fun apply(t: String): String {
return t.toUpperCase()
}
})
或者只导入 io.reactivex.functions.Function
然后使用 Function
。
正在尝试添加 compositeDisposable。使用以下代码:
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)
)
}
但是,我收到以下错误:
类型推断失败:fun map(p0: Function!):可观察!
不能应用于
()
类型不匹配:推断类型只是函数!预计
接口函数需要一个类型参数
我希望它像这样简单:
.map { it.toUpperCase() }
而不是
.map(object : Function<String, String>()
{
@Throws(Exception::class)
fun apply(s: String): String
{
return s.toUpperCase()
}
})
但无论如何您可能没有使用 io.reactivex.functions.Function
,因此出现错误。如果你真的不想使用 lambda 那么:
.map(object : io.reactivex.functions.Function<String, String> {
override fun apply(t: String): String {
return t.toUpperCase()
}
})
或者只导入 io.reactivex.functions.Function
然后使用 Function
。