如何在Kotlin中使用简单的数据类

时间:2019-07-19 09:05:06

标签: android kotlin

我是Kotlin的新手,正在学习它,我有一个简单的数据类

data class Country{

    @SerializedName("name")
    val countryName: String?,
    @SerializedName("capital")
    val capital: String?,
    @SerializedName("flagPNG")
    val flag: String?

}

我面临的错误

enter image description here]

2 个答案:

答案 0 :(得分:2)

您的数据类应如下所示:

data class Country(

    @SerializedName("name")
    val countryName: String?,
    @SerializedName("capital")
    val capital: String?,
    @SerializedName("flagPNG")
    val flag: String?

)

区别在于,正如注释中提到的那样:在您使用花括号时,我在字段周围使用了普通括号

答案 1 :(得分:1)

Kotiln 中的

数据类必须在其构造函数声明中包含变量/值参数

官方文档指出:

  

为确保所生成代码的一致性和有意义的行为,   数据类必须满足以下要求:

     
      
  1. 主要构造函数必须至少具有一个参数;

  2.   
  3. 所有主要的构造函数参数都需要标记为 val var ;

  4.   
  5. 数据类不能是抽象,打开,密封内部

  6.   
  7. (1.1之前)数据类只能实现接口

  8.   

因此,您的数据类应类似于以下内容:

data class Foo(
    val bar: Any
)

注意:在Kotlin中,只需在类名后放置'()'即可将其声明为主要构造函数,即可声明类构造函数。

您的类声明应类似于以下内容:

data class Country(
    @SerializedName("name")
    val countryName: String?,
    @SerializedName("capital")
    val capital: String?,
    @SerializedName("flagPNG")
    val flag: String?
)

有关更多信息,请参考here