首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >kotlinx.serialization,编译码器SnapshotStateList

kotlinx.serialization,编译码器SnapshotStateList
EN

Stack Overflow用户
提问于 2021-06-27 17:26:12
回答 1查看 529关注 0票数 2

在Jetpack撰写中,SnapshotStateList是从List派生的类,但是每当我试图在其上添加可序列化的注释时,它都会说“没有找到该类的序列化器,使用上下文使用类型或属性的上下文注释”

我有一个类ListContainer,我想使它可序列化,它只包含一个条目列表,它是一个ListContainer,可以被聪明地抛出列表,但是我不知道如何告诉kotlin序列化程序将它转换成一个列表/使用简单的列表序列化程序!

EN

回答 1

Stack Overflow用户

发布于 2021-07-01 14:50:12

代码语言:javascript
复制
class SnapshotListSerializer<T>(private val dataSerializer:KSerializer<T>) :
    KSerializer<SnapshotStateList<T>> {

    override val descriptor: SerialDescriptor = ListSerializer(dataSerializer).descriptor

    override fun serialize(encoder: Encoder, value: SnapshotStateList<T>) {
        encoder.encodeSerializableValue(ListSerializer(dataSerializer), value as List<T>)
    }

    override fun deserialize(decoder: Decoder): SnapshotStateList<T> {
        val list = mutableStateListOf<T>()
        val items = decoder.decodeSerializableValue(ListSerializer(dataSerializer))
        list.addAll(items)
        return list
    }
}

我不确定它是否有效,但这是我想出的,我会相应地更新答案。

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

https://stackoverflow.com/questions/68153701

复制
相关文章

相似问题

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