Sobes.tech
Junior — Middle

Kako odrediti da li je promenljiva sa modifikatorom lateinit u Kotlinu inicijalizovana?

sobes.tech АИ

Одговор од АИ

U Kotlinu, za proveru da li je promenljiva sa modifikatorom lateinit inicijalizovana, koristi se svojstvo isInitialized u refleksiji promenljive. Ovo radi samo za svojstva klase deklarisana sa lateinit var.

Primer:

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
}

Na ovaj način, možete sigurno proveriti da li je promenljiva inicijalizovana pre nego što je koristite, kako biste izbegli izuzetak UninitializedPropertyAccessException.