Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/211.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 用于存储库到ViewModel通信的密封类_Android_Kotlin_Sealed Class - Fatal编程技术网

Android 用于存储库到ViewModel通信的密封类

Android 用于存储库到ViewModel通信的密封类,android,kotlin,sealed-class,Android,Kotlin,Sealed Class,基于Florina Muntenescu的观点,我有两个问题: 问题1:在以下情况下,考虑到响应响应结果: 我如何解决这个问题? 但这是有效的: when (result: Result<Int>) { ... is SomeApiResult.Error -> result.exception.message } 在我的ViewModel中,我不会查询Error.Generic 相反,我将使用如上所示的is someapireult.Error(如else->“

基于Florina Muntenescu的观点,我有两个问题:

问题1:在以下情况下,考虑到
响应
响应结果:

我如何解决这个问题?
但这是有效的:

when (result: Result<Int>) {
   ...
   is SomeApiResult.Error -> result.exception.message
}
在我的
ViewModel
中,我不会查询
Error.Generic

相反,我将使用如上所示的
is someapireult.Error
(如
else->
“其他错误”)。这条路对吗

when (result: SomeApiResult) {
    ...
    is SomeApiResult.Error.Error1,
    is SomeApiResult.Error.Error2 -> {
        // it will fail with "Unresolved reference: exception"
        result.exception
    }
    is SomeApiResult.Error.Error3 -> {
        ...
    }
}
when (result: Result<Int>) {
   ...
   is SomeApiResult.Error -> result.exception.message
}
is Result.Error ->
    when (result.exception) {
        is Error1 -> SomeApiResult.Error.Error1(result.exception)
        is Error2 -> SomeApiResult.Error.Error2(result.exception)
        ...
        else -> SomeApiResult.Error.Generic(result.exception)
    }