Я новичок в котлине.Я пытаюсь обработать ошибки в rxjava с kotlin.Для этого я написал следующий запечатанный класс и некоторое расширение.
sealed class Result<out T> {
data class Success<out T>(val data: T) : Result<T>()
data class Error<out T>(val t: Throwable) : Result<T>()
}
Как создать экземпляр Result?Так как его запечатанный класс, я не могу этого сделать.Ниже приведены расширения, которые я написал.
fun <T> Observable<T>.retrofitResponseToResult(): Observable<Result<T>> {
return this.map { it.asResult() }
.onErrorReturn {
if (it is HttpException || it is IOException) {
return@onErrorReturn it.asErrorResult<T>()
} else {
throw it
}
}
}
fun <T> T.asResult(): Result<T> {
return Result(data = this, error = null)
}
fun <T> Throwable.asErrorResult(): Result<T> {
return Result(data = null, error = this)
}