Sobes.tech
Junior

Jak by se měly kontrolovat hodnoty na null v kódu?

sobes.tech AI

Odpověď od AI

V Kotlinu se pro práci s nullable typy a kontrolu na null používají následující přístupy:

  1. Operátor bezpečného volání (?.): Umožňuje volat metody nebo přistupovat k vlastnostem objektu pouze v případě, že objekt není null. Pokud je objekt null, celé volání vrátí null.

  2. Operátor Elvis (?:): Umožňuje poskytnout výchozí hodnotu, pokud je výraz nalevo od operátoru null.

  3. Operátor nebezpečného volání (!!): Převádí nullable typ na non-nullable. Pokud je hodnota null, dojde k vyhození výjimky NullPointerException. Použití je důrazně nedoporučeno, protože může způsobit pád aplikace.

  4. Blok if s kontrolou na null: Tradiční způsob kontroly, často používaný ve spojení s Kotlinovými smart casty.

// Operátor bezpečného volání ?.
val length = text?.length

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

// Operátor Elvis ?:
val nonNullText = text ?: "Výchozí text"

// Operátor nebezpečného volání !! (vyhýbejte se, pokud je to možné)
val forceLength = text!!.length // Může vyvolat NullPointerException

V Javě se kontrola na null provádí výhradně pomocí podmínek if:

// Java
if (text != null) {
    int length = text.length();
} else {
    // Zpracování případu, kdy je text null
}