我刚刚开始学习kotlin。
这是我的数据类。
data class UserModel(
@SerializedName("Id")
val id: Int = 0,
@SerializedName("myKey")
val myKey: Boolean? = false
//var myKey: Any?
虽然我使用的简单名称为val myKey: Boolean? = false
,但是我的应用仍在运行并且能够运行。但是,当我使用var myKey: Any?
并运行应用程序时,会出现编译错误。我已经通过注释每一行的代码进行检查。我发现问题是由于var myKey: Any?
好,如果有人知道这一点。高级帮助将不胜感激!
答案 0 :(得分:-1)
尝试
@SerializedName("myKey")
val myKey: Boolean? = false
进入
@SerializedName("myKey")
val myKey: any? = false
示例:
data class UserModel(
@SerializedName("Id")
val id: Int = 0,
@SerializedName("myKey")
val myKey: any? = false
)
确保在访问数据类时进行一些类型检查和强制转换,例如
val userModel = UserModel()
when(userModel.myKey){
is Boolean -> {
// do stuff when myKey type of Boolean
if(userModel.myKey) println("key is false")
else println("key is true")
}
is String -> {
// do stuff when myKey type of String
println(userModel.myKey)
}
}