任何不适用于数据类Kotlin的数据类型

时间:2019-06-25 08:16:54

标签: android kotlin data-class

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

好,如果有人知道这一点。高级帮助将不胜感激!

1 个答案:

答案 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)
    }
}