Java 通用到 Kotlin 通用。 Return 通用方法
Java generic to Kotlin generic. Return generic from method
正在尝试将项目从 Java 转换为 Kotlin。
我卡在了 returns 来自 RXJava 2
的 ObservableTransformer 的方法上
Java
protected <T> ObservableTransformer<T, T> onNetworkError() {
return observable -> observable
.doOnError(throwable -> networkError.setValue(throwable));
}
使用 intellij 转换它 ide 会引发错误。
Java 使用 ide
到 Kotlin
protected fun <T> onNetworkError(): ObservableTransformer<T, T> {
return { observable ->
observable
.doOnError({ throwable -> networkError.setValue(throwable) })
}
}
有人 idea 可以将上述 Java 代码转换为 Kotlin 吗?
提前致谢
您的代码正在返回一个接受未知类型 observable
和 returns 一个 Observable
对象的函数。
你需要的lambda表达式应该是这样的:
protected fun <T> onNetworkError(): ObservableTransformer<T, T> {
return ObservableTransformer { observable ->
observable
.doOnError({ throwable -> networkError.setValue(throwable) })
}
}
除了上面BakaWaii的回复,您还可以进一步简化代码如下:
protected fun <T> onNetworkError(): ObservableTransformer<T, T> {
return ObservableTransformer {
it.doOnError { networkError.setValue(it) }
}
}
但是,有两个不同的 it
可能会造成混淆,因此您可能希望将其中之一保留为显式参数。
正在尝试将项目从 Java 转换为 Kotlin。
我卡在了 returns 来自 RXJava 2
的 ObservableTransformer 的方法上Java
protected <T> ObservableTransformer<T, T> onNetworkError() {
return observable -> observable
.doOnError(throwable -> networkError.setValue(throwable));
}
使用 intellij 转换它 ide 会引发错误。
Java 使用 ide
到 Kotlinprotected fun <T> onNetworkError(): ObservableTransformer<T, T> {
return { observable ->
observable
.doOnError({ throwable -> networkError.setValue(throwable) })
}
}
有人 idea 可以将上述 Java 代码转换为 Kotlin 吗?
提前致谢
您的代码正在返回一个接受未知类型 observable
和 returns 一个 Observable
对象的函数。
你需要的lambda表达式应该是这样的:
protected fun <T> onNetworkError(): ObservableTransformer<T, T> {
return ObservableTransformer { observable ->
observable
.doOnError({ throwable -> networkError.setValue(throwable) })
}
}
除了上面BakaWaii的回复,您还可以进一步简化代码如下:
protected fun <T> onNetworkError(): ObservableTransformer<T, T> {
return ObservableTransformer {
it.doOnError { networkError.setValue(it) }
}
}
但是,有两个不同的 it
可能会造成混淆,因此您可能希望将其中之一保留为显式参数。