代码之家  ›  专栏  ›  技术社区  ›  TheGreatCornholio

Android Kotlin-序列化mutabeList

  •  0
  • TheGreatCornholio  · 技术社区  · 5 年前

    import com.google.gson.annotations.SerializedName
    import java.io.Serializable
    
    
    class Memes (
        @SerializedName("id") var id: Long,
        @SerializedName("title") var title: String
    )
    

    当我将其更改为:

    class Memes: Serializable {
        var id: Long,
        var title: String
    }
    

    然后我得到 Property getter or setter expected

    0 回复  |  直到 5 年前
        1
  •  1
  •   Amin    5 年前

    在Kotlin中,您必须在构造中使用backing字段实例化属性(从构造函数获取属性、为属性赋值或填充属性) init lateinit var . 在第一个代码中,您将在构造函数中获取它们。但在第二个示例中,它们是在未初始化的情况下引入的,所以编译器要求您要么填充它们,要么通过提供getter和setter将它们转换为非支持字段。

    但是,如果您想使第一个代码可序列化,您只需使其实现即可 Serializable

    class Memes (
        @SerializedName("id") var id: Long,
        @SerializedName("title") var title: String
    ) : Serializable
    

    而且看起来你可以把它变成一个 data class