Kuidas tuleks koodis kontrollida null väärtusi?
sobes.tech AI
Vastus AI-lt
Kotlinis kasutatakse järgmisi lähenemisviise nullable-tüüpidega töötamisel ja null kontrollimisel:
-
Turvalise väljakutse operaator (
?.): Võimaldab kutsuda meetodeid või pääseda omadustele objektil ainult juhul, kui objekt ei olenull. Kui objekt onnull, tagastab kogu väljakutsenull. -
Elvis operaator (
?:): Võimaldab pakkuda vaikimisi väärtust, kui väljend vasakul operaatorile onnull. -
Ohtliku väljakutse operaator (
!!): Muudab nullable-tüübi non-nullable-ks. Kui väärtus onnull, visatakseNullPointerException. Kasutamine on tugevalt soovitatav vältida, kuna see võib põhjustada rakenduse kokkuvarisemise. -
ifplokknullkontrolliga: Traditsiooniline kontrollimisviis, mida sageli kasutatakse koos Kotlin'i smart cast'idega.
// Turvalise väljakutse operaator ?.
val length = text?.length
// Smart cast pärast `null` kontrolli
if (text != null) {
val length = text.length // tekst automaatselt teisendatakse String-ks (non-nullable)
}
// Elvis operaator ?:
val nonNullText = text ?: "Vaikimisi tekst"
// Ohtliku väljakutse operaator !! (vältige, kui võimalik)
val forceLength = text!!.length // Võib visata NullPointerException
Java keeles tehakse null kontroll ainult tingimuslikult if-lausega:
// Java
if (text != null) {
int length = text.length();
} else {
// Käsitlus juhul, kui text on null
}