首页 > 解决方案 > 任何在数据类 kotlin 中不起作用的数据类型

问题描述

我刚开始学习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?

非常好心,如果有人知道这件事。高级帮助将不胜感激!

标签: androidkotlindata-class

解决方案


尝试从

@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)
    }
}

推荐阅读