如何检查 Kotlin 中的 lateinit 变量是否已初始化?
大家好!我最近开始用 Kotlin 编程,遇到了一个情况。我有一个类,其中对属性使用了 `lateinit var`。一切正常,但我想在访问该属性之前安全地检查它是否已经初始化。如果我尝试访问未初始化的 `lateinit` 变量,会抛出 `UninitializedPropertyAccessException`,导致程序崩溃。
以下是我的代码示例:
```kotlin
class MyApp {
lateinit var user: User
fun setup() {
// 这里 user 可能被初始化,也可能没有
if (someCondition) {
user = User("Alice")
}
}
fun printUser() {
// 想检查 user 是否已初始化,以避免错误
println(user.name) // 如果未初始化,会抛出异常
}
}
```
我尝试过写 `if (user != null)`,但编译器报错说不能这样检查 `lateinit` 变量。在文档中...