我是Kotlin
的新手,正在学习它,我有一个简单的数据类
data class Country{
@SerializedName("name")
val countryName: String?,
@SerializedName("capital")
val capital: String?,
@SerializedName("flagPNG")
val flag: String?
}
我面临的错误:
]
答案 0 :(得分:2)
您的数据类应如下所示:
data class Country(
@SerializedName("name")
val countryName: String?,
@SerializedName("capital")
val capital: String?,
@SerializedName("flagPNG")
val flag: String?
)
区别在于,正如注释中提到的那样:在您使用花括号时,我在字段周围使用了普通括号
答案 1 :(得分:1)
数据类必须在其构造函数声明中包含变量/值参数。
官方文档指出:
为确保所生成代码的一致性和有意义的行为, 数据类必须满足以下要求:
主要构造函数必须至少具有一个参数;
所有主要的构造函数参数都需要标记为 val 或 var ;
数据类不能是抽象,打开,密封或内部;
(1.1之前)数据类只能实现接口。
因此,您的数据类应类似于以下内容:
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。