Android 数据类kotlin中不工作的任何数据类型
我刚开始学习科特林 这是我的数据类Android 数据类kotlin中不工作的任何数据类型,android,kotlin,data-class,Android,Kotlin,Data Class,我刚开始学习科特林 这是我的数据类 data class UserModel( @SerializedName("Id") val id: Int = 0, @SerializedName("myKey") val myKey: Boolean? = false //var myKey: Any? 而我使用简单asval myKey:Boolean?=false则我的应用程序正在工作并能够运行。但是当我使用var myKey:Any?并运行应用程序时
data class UserModel(
@SerializedName("Id")
val id: Int = 0,
@SerializedName("myKey")
val myKey: Boolean? = false
//var myKey: Any?
而我使用简单asval myKey:Boolean?=false
则我的应用程序正在工作并能够运行。但是当我使用var myKey:Any?
并运行应用程序时,它会给我带来编译错误。我已经通过注释每一行的代码进行了检查。我发现问题的出现是因为这个var myKey:Any?
如果有人知道这件事,我会很感激的。先进的帮助将不胜感激 从
@SerializedName("myKey")
val myKey: Boolean? = 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)
}
}
你确定这不仅仅是因为你有一个重复的
myKey
属性名吗?是的,先生,我确定。。我已经应用了不同的变量名,当您将它作为默认值分配给false
时,为什么需要空安全性?编译对我来说很好。您收到的是编译错误还是运行时错误?编译时,先生。原因:org.gradle.api.GradleException:编译错误。有关详细信息,请参阅日志。。。org.gradle.api.tasks.TaskExecutionException:任务:app:compiledBugkotlin的执行失败。在
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)
}
}