假设我用 定义了一个类可以为空 属性(property)
class ABC {
var myProperty: String? = null
}
有没有办法将其默认为空值?
也许类似于 SCALA 的东西?
var myProperty: String? = _ // compilation error
或者干脆:
var myProperty: String? // compilation error
我知道我们可以使用 延迟初始化 Kotlin 1.2 中的变量稍后可以像这样检查初始化:
lateinit var myProperty: String
if (::myProperty.isInitialized) {
//value is not-null
}
那么 lateinit 是首选方式吗?默认为空值是可能的还是故意省略的?
最佳答案
Kotlin 有意要求您显式初始化所有属性。没有速记语法。对于可空类型的属性,首选方法是不使用 lateinit
, 但用 null
声明它初始化程序。isInitialized
lateinit
的方法属性旨在处理复杂的情况,如资源清理;它不打算用作 null
的替代品检查想要节省写作时间的用户 = null
作为属性声明的一部分。
关于properties - Kotlin - 可为空的属性默认为空值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51628035/