1
我遇到了以下代码无法在kotlin中编译的问题。Kotlin类型不匹配编译错误:需要成功<T>,找到MyError
// StateModel.kt
sealed class StateModel
class Loading : StateModel()
data class Success<T: Any>(val data: T) : StateModel()
data class MyError(val message: String) : StateModel()
// StateModelTransformer.kt
class StateModelTransformer<T: Any> : FlowableTransformer<T, StateModel> {
override fun apply(upstream: Flowable<T>): Publisher<StateModel> {
return upstream
.map { data -> Success(data) }
.onErrorReturn { error ->
MyError(error.message) // compile error, Type mismatch, Require Success<T>, Found MyError
}
.startWith(Loading()) // compile error, none of the following function can be called with the arguments supplied
}
}
我不知道为什么onErrorReturn
说需要Success<T>
类型,而是一个StateModel
类型。
感谢
感谢您的详细解释。 – akabc