Avatar ·

如何检查 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` 变量。在文档中...