android - 任何在数据类 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?
非常好心,如果有人知道这件事。高级帮助将不胜感激!
解决方案
尝试从
@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)
}
}
推荐阅读
- google-cloud-platform - 使用端点设置云功能时绑定 IAM 策略时出错
- php - 在 Laravel 作业中使用静态类属性的问题
- python - 为什么/如何 CPython reverse() 这么快?CPython 的 reverse() 是否重新指向列表中的指针?
- svn - 用于列出要在没有工作副本的情况下合并的文件的 SVN 命令?
- java - SPRING REDIS - 找不到能够从类型转换的转换器.. 错误
- c# - 具有相同对象的实体框架两个表
- react-redux - 测试 fetch 然后使用 jest 捕获一个 thunk
- linux - 在 mmap() 做任何有用的事情之后立即 MADV_DONTNEED 吗?
- html - 如何修复引导部分在 sm 屏幕上一起运行?
- sql-server - 有没有更好的方法在 SQL Server 的名称字段中查找不正确的大写/小写单词?