Avatar ·

如何检查 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 变量是否已初始化?