Sobes.tech
Junior — Middle

Πώς να προσδιορίσετε αν μια μεταβλητή με τον τροποποιητή lateinit σε Kotlin έχει αρχικοποιηθεί;

sobes.tech AI

Απάντηση από AI

В Kotlin для проверки, была ли инициализирована переменная с модификатором lateinit, используется свойство isInitialized у рефлексии переменной. Это работает только для свойств класса, объявленных с lateinit var.

Пример:

class Example {
    lateinit var text: String

    fun isTextInitialized(): Boolean {
        return this::text.isInitialized
    }
}

fun main() {
    val example = Example()
    println(example.isTextInitialized()) // false
    example.text = "Hello"
    println(example.isTextInitialized()) // true
}

Таким образом, можно безопасно проверить, инициализирована ли переменная, прежде чем использовать её, чтобы избежать исключения UninitializedPropertyAccessException.