Sobes.tech
Junior — Middle

Mi a szerepe a 'by lazy' tulajdonságnak Kotlinban, és milyen helyzetekben érdemes használni?

sobes.tech MI

Válasz az MI-től

Kotlinban a by lazy módosítóval ellátott tulajdonság késleltetve inicializálódik, vagyis az érték csak az első hozzáféréskor kerül kiszámításra, nem az objektum létrehozásakor. Ez akkor hasznos, ha az inicializálás erőforrás-igényes vagy nem mindig szükséges.

Használati példa:

val heavyResource by lazy {
    println("Inicializálás")
    "Eredmény"
}

fun main() {
    println("Mielőtt hozzáférnénk")
    println(heavyResource) // Itt történik az inicializálás
    println(heavyResource) // Nem történik újra inicializálás
}

Használati forgatókönyvek:

  • Késleltetett inicializálás olyan objektumoknál, amelyek nem mindig szükségesek.
  • Teljesítmény-optimalizálás.
  • Biztonságos inicializálás több szálas környezetben (alapértelmezés szerint a lazy szálbiztos).