Sobes.tech
Junior — Middle

Μπορεί κανείς να προσδιορίσει αν μια μεταβλητή που δηλώνεται με τον τροποποιητή lateinit έχει λάβει τιμή;

sobes.tech AI

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

В Kotlin переменная, объявленная с модификатором lateinit, инициализируется позже, но не при объявлении. Чтобы проверить, была ли она инициализирована, можно использовать рефлексию с помощью свойства ::variableName.isInitialized.

Пример:

lateinit var myVar: String

fun checkInitialization() {
    if (::myVar.isInitialized) {
        println("myVar инициализирована: $myVar")
    } else {
        println("myVar не инициализирована")
    }
}

Это позволяет избежать исключения UninitializedPropertyAccessException при попытке доступа к неинициализированной lateinit переменной.