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:
-
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 objektnull, celé volání vrátínull. -
Operátor Elvis (
?:): Umožňuje poskytnout výchozí hodnotu, pokud je výraz nalevo od operátorunull. -
Operátor nebezpečného volání (
!!): Převádí nullable typ na non-nullable. Pokud je hodnotanull, dojde k vyhození výjimkyNullPointerException. Použití je důrazně nedoporučeno, protože může způsobit pád aplikace. -
Blok
ifs kontrolou nanull: 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
}