matt tighe
06/12/2020, 9:16 PMwhen (result) {
is SuccessDataClassWithGenericTypeOf<MyGenericType> -> doThings(it)
is Failed -> doFailedThings(it.failureMessage)
is Loading -> doLoadingThings
}
Why does the type get erased in this case:
sealed class MyResultType {
data class SuccessDataClassWithGenericTypeOf<T>(val result: T) : MyResultType()
object Loading : MyResultType()
data class Failed(val failureMessage: String) : MyResultType()
}
But not in this case:
sealed class MyResultType<out T> {
data class SuccessDataClassWithGenericTypeOf<T>(val result: T) : MyResultType<T>()
object Loading : MyResultType<Nothing>()
data class Failed(val failureMessage: String) : MyResultType<Nothing>()
}
Kroppeb
06/13/2020, 7:57 AM