尝试将项目从Java转换为Kotlin。
我遇到了一个从RXJava 2返回ObservableTransformer的方法
爪哇
protected <T> ObservableTransformer<T, T> onNetworkError() {
return observable -> observable
.doOnError(throwable -> networkError.setValue(throwable));
}
使用intellij ide转换它会引发错误。
Java to Kotlin using ide
protected fun <T> onNetworkError(): ObservableTransformer<T, T> {
return { observable ->
observable
.doOnError({ throwable -> networkError.setValue(throwable) })
}
}
有没有人有想法将上述Java代码转换为Kotlin?
提前致谢
答案 0 :(得分:2)
您的代码返回的函数接受未知类型的observable
并返回Observable
个对象。
你需要的lambda表达式应该是这样的:
protected fun <T> onNetworkError(): ObservableTransformer<T, T> {
return ObservableTransformer { observable ->
observable
.doOnError({ throwable -> networkError.setValue(throwable) })
}
}
答案 1 :(得分:1)
除了BakaWaii的上述回复之外,您还可以按如下方式进一步简化代码:
protected fun <T> onNetworkError(): ObservableTransformer<T, T> {
return ObservableTransformer {
it.doOnError { networkError.setValue(it) }
}
}
但是,有两个不同的it
可能会造成混淆,因此您可能希望将其中一个作为显式参数。