首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Kotlin :从Flow<sealed类获得(T)列表< <T>>>列表

Kotlin :从Flow<sealed类获得(T)列表< <T>>>列表
EN

Stack Overflow用户
提问于 2021-12-03 07:43:18
回答 1查看 271关注 0票数 0

我有以下函数返回Flow>>

fun getItems() : Flow<Resources<List<Item>?>>

如何从这个函数中获得项目列表?

参考资料类为fllow:

代码语言:javascript
复制
 sealed class Resources<out T>(val data: T?) {
    class Success<T>(data: T) : Resources<T>(data)
    class Error(val throwable: Throwable) : Resources<Nothing>(null)
    object Loading : Resources<Nothing>(null)

    
    override fun toString(): String {
        return when (this) {
            is Success -> "Success: $data"
            is Error -> "Error: ${throwable.message}"
            is Loading -> "Loading"
        }
    }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-12-03 08:14:29

试试下面的代码:

代码语言:javascript
复制
val items: List<Item>? = getItems().first { it is Resources.Success }.data

它将从流动中选择第一次Success排放。

请注意,first是一个suspend函数,因此您只能从协同线调用它。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70210967

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档