在Jetpack撰写中,SnapshotStateList是从List派生的类,但是每当我试图在其上添加可序列化的注释时,它都会说“没有找到该类的序列化器,使用上下文使用类型或属性的上下文注释”
我有一个类ListContainer,我想使它可序列化,它只包含一个条目列表,它是一个ListContainer,可以被聪明地抛出列表,但是我不知道如何告诉kotlin序列化程序将它转换成一个列表/使用简单的列表序列化程序!
发布于 2021-07-01 14:50:12
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
}
}我不确定它是否有效,但这是我想出的,我会相应地更新答案。
https://stackoverflow.com/questions/68153701
复制相似问题