当前位置:   article > 正文

kotlin Parcelize 序列化 报错_type is not directly supported by 'parcelize'. ann

type is not directly supported by 'parcelize'. annotate the parameter type w

1. 报错内容

Type is not directly supported by ‘Parcelize’ Annotate the parameter type with ‘@RawValue’ if you want it to be serialized using ‘writeValue()’

背景

class ManageCommonlyBean(val data: Data) : ResponseBaseModel() {


    data class Data(
        val records: List<Record>,
    )

    @Parcelize
    data class Record(
        xxxxxx....(其他参数)
        val cdUser: CdUser,
    ) : Parcelable
    
    data class CdUser(
        val headImgurl: String,
    ) 

}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

这时候对CdUser 类进行序列化的时候 会报上述错误
根据报错提示 在 CdUser 的字段的类型前面加上 @RawValue 注解 、类名上加上@Parcelize注解 后再实现Parcelable 就可以了

class ManageCommonlyBean(val data: Data) : ResponseBaseModel() {


    data class Data(
        val records: List<Record>,
    )

    @Parcelize
    data class Record(
        xxxxxx....(其他参数)
        val cdUser: CdUser,
    ) : Parcelable

    @Parcelize
    data class CdUser(
        val headImgurl: @RawValue String,
    ) : Parcelable

}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/259850
推荐阅读
相关标签
  

闽ICP备14008679号