edwardwongtl
12/10/2018, 9:51 AM???
such that toResult
won’t error? I’ve tried Nothing
and it is not working
sealed class ApiResult<T>
data class Success<T>(
val msg: String,
val data: T
) : ApiResult<T>()
data class Failure(
val error: String,
val errMsg: String
) : ApiResult<???>()
fun toResult(): ApiResult<User> {
return if (error == "0") Success(
msg = msg, data = movies
) else Failure(error = error, errMsg = errMsg)
}
Nothing
got me error Required: ApiResult<User>, Found: Failure
karelpeeters
12/10/2018, 9:53 AMUnit
maybe?marstran
12/10/2018, 9:53 AMT
covariant by marking it with out
. Then Nothing
should work.sealed class ApiResult<out T>
data class Success<T>(
val msg: String,
val data: T
) : ApiResult<T>()
data class Failure(
val error: String,
val errMsg: String
) : ApiResult<Nothing>()
ApiResult<Nothing>
a subtype of ApiResult<T>
for all T
.edwardwongtl
12/10/2018, 9:54 AMout
trick works!! Thanksmarstran
12/10/2018, 9:55 AMDico
12/10/2018, 12:43 PM