Sobes.tech
Junior

Čo sa stane, ak pristúpite k nullable poľu objektu v Kotlin?

sobes.tech AI

Odpoveď od AI

Ak pristúpite k nullable poľu objektu bez kontroly na null, dôjde k výnimke NullPointerException (NPE).

Pre bezpečný prístup môžete použiť nasledujúce prístupy:

  1. Operátor bezpečného volania (?.): Vráti null, ak je objekt null, inak vykoná volanie.

    // Predpokladajme, že user? je User?
    val userName: String? = user?.name
    
  2. Operátor potvrdenia nenull (!!): Výslovne potvrdzuje, že objekt nie je null. Ak je, vyhodí NullPointerException.

    // Použiť vedome, môže viesť k NPE
    val userName: String = user!!.name
    
  3. Elvisov operátor (?:): Poskytuje predvolenú hodnotu, ak je ľavá strana null.

    val userName: String = user?.name ?: "Neznámy používateľ"
    
  4. Bloky if alebo when: Explicitná kontrola na null.

    if (user != null) {
        val userName = user.name
    } else {
        // Spracovanie prípadu, keď je user null
    }
    
  5. Funkcie let, run, apply, with s bezpečným volaním:

    user?.let {
        // `it` v tomto bloku je nenullovateľný `User`
        val userName = it.name
    }
    

Voľba prístupu závisí od logiky programu a požadovaného správania v prípade, že je objekt null. Odporúča sa používať operátor bezpečného volania (?.) alebo Elvisov operátor (?:) na zabránenie NPE. Operátor !! by mal byť používaný s opatrnosťou.