我无法编译代码A,
我收到该行的以下错误
is Result.Success -> { }
需要一个类型的参数。如果您不想传递类型参数,请使用“成功<>”*
我收到该行的以下错误
is Result.Error -> { }
不兼容的类型:Result.Error 和 Result
我该如何解决?
顺便说一句,如果我用
is Result.Success -> { }
替换is Result.Success<*> -> { }
,
我会收到以下警告:
检查实例总是“假”
代码A
override suspend fun translateInBackground() {
val listIncompleted = handleMInfo.listIncompleted()
listIncompleted
.flowOn(Dispatchers.IO)
.collect {
when(it){
is Result.Success -> { }
is Result.Error -> { }
is Result.Loading -> { }
}
}
}
sealed class Result<out R> {
data class Success<out T>(val data: T) : Result<T>()
data class Error(val exception: Exception) : Result<Nothing>()
object Loading : Result<Nothing>()
}
override fun listIncompleted(): Flow<Result<List<MInfo>>> {
return mInfoRepository.listIncompleted()
}
您错误地设置了
Result
类型层次结构。您希望能够返回 Result<T>
,即使它是 Loading
或 Error
。
对于
Error
,直接将类型参数传下去,不要使用。对于Loading
,如果将其设为数据类,则可以执行相同的操作,或者如果希望它保持为单例,则需要进行一些(安全的)转换。