如何检查 Kotlin 中的 lateinit 变量是否已初始化?
大家好!我最近开始学习 Kotlin,在使用 lateinit 变量时遇到了一个问题。
我有一个类,在其中声明了一个带有 lateinit 修饰符的属性,因为我无法在构造函数中初始化它——该值来自外部源(例如,在加载数据或通过 DI 设置依赖项之后)。以下是一个简化的示例:
```kotlin
class UserManager {
lateinit var userName: String
fun loadUser() {
// 模拟数据加载
userName = "Alice"
}
fun greetUser() {
// 如果 loadUser() 尚未被调用,这里可能会出错
println("Hello, $userName")
}
}
```
问题在于,如果我在 `loadUser()` 赋值之前调用 `greetUser()`,我会得到 `UninitializedPropertyAccessException`。我想检查变量是否已初始化,以避免此错误,并可能执行一些默认操作。
请问,在 Kotlin 中是否有方法可以检查 lateinit 变量是否已初始化?