Sobes.tech
Junior

Ako by ste mali kontrolovať hodnoty null v kóde?

sobes.tech AI

Odpoveď od AI

V Kotlinu sa nasledovnými prístupmi sa pracuje s nullable typmi a kontrolou na null:

  1. Operator bezpečného volania (?.): Umožňuje volanie metód alebo prístup k vlastnostiam objektu iba v prípade, že objekt nie je null. Ak je objekt null, celé volanie vráti null.

  2. Elvisov operátor (?:): Umožňuje poskytnúť predvolenú hodnotu, ak je výraz na ľavej strane operátora null.

  3. Operator nebezpečného volania (!!): Konvertuje nullable typ na non-nullable. Ak je hodnota null, bude vyvolaná výnimka NullPointerException. Použitie je dôrazne neodporúčané, pretože môže viesť k zrúteniu aplikácie.

  4. Blok if s kontrolou na null: Tradičný spôsob kontroly, často používaný v spojení s Kotlinovými smart castmi.

// Operator bezpečného volania ?.
val length = text?.length

// Smart cast po kontrole na null
if (text != null) {
    val length = text.length // text je automaticky prevedený na String (non-nullable)
}

// Elvisov operátor ?:
val nonNullText = text ?: "Predvolený text"

// Operator nebezpečného volania !! (vyhýbajte sa, ak je to možné)
val forceLength = text!!.length // Môže vyvolať NullPointerException

V Jave sa kontrola na null vykonáva výlučne pomocou podmienok if:

// Java
if (text != null) {
    int length = text.length();
} else {
    // Spracovanie prípadu, keď je text null
}