簡體   English   中英

Android-具有Rxkotlin過濾器的Kotlin Sealed類

[英]Android - Kotlin Sealed class with Rxkotlin filter

由於密封就像枚舉對象一樣,所以我決定使用密封類進行網絡響應,如果成功則包含成功還是失敗,如果包含成功則包含數據,否則返回錯誤消息

  sealed class Result {
            sealed class Success : Result() {
                data class F1(val data: Any) : Success()
                data class F2(val data: Any) : Success()
            }

            sealed class Error : Result() {
                data class F1(val error: Any) : Error()
                data class F2(val error: Any) : Error()
            }
        }

上面的Result類具有成功或失敗

 getSomeDataFromService()
                .filter {
                    it is Result.Success.F1
                }
                .map { it: Result
                    /*
                    i face problem here,my need is F1 data class but what i
                     got is Result ,i know that i can cast here, 
                    but i am eager to know for any other solution other than casting  
                     */


                }

}

還有其他解決方案嗎?
任何幫助

假設getSomeDataFromService()返回Single ,則您應該能夠使用Maybe.ofType()

getSomeDataFromService()
    .toMaybe()
    .ofType(Result.Success.F1::class.java)
    .map {
        ...
    }

如果getSomeDataFromService()返回一個Observable ,則可以直接使用Observable.ofType()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM