Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 数据类kotlin中不工作的任何数据类型_Android_Kotlin_Data Class - Fatal编程技术网

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?
而我使用简单as
val 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)
    }
}