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:
-
Operator bezpečného volania (
?.): Umožňuje volanie metód alebo prístup k vlastnostiam objektu iba v prípade, že objekt nie jenull. Ak je objektnull, celé volanie vrátinull. -
Elvisov operátor (
?:): Umožňuje poskytnúť predvolenú hodnotu, ak je výraz na ľavej strane operátoranull. -
Operator nebezpečného volania (
!!): Konvertuje nullable typ na non-nullable. Ak je hodnotanull, bude vyvolaná výnimkaNullPointerException. Použitie je dôrazne neodporúčané, pretože môže viesť k zrúteniu aplikácie. -
Blok
ifs kontrolou nanull: 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
}