Sobes.tech
Junior

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:

  1. Turvalise väljakutse operaator (?.): Võimaldab kutsuda meetodeid või pääseda omadustele objektil ainult juhul, kui objekt ei ole null. Kui objekt on null, tagastab kogu väljakutse null.

  2. Elvis operaator (?:): Võimaldab pakkuda vaikimisi väärtust, kui väljend vasakul operaatorile on null.

  3. Ohtliku väljakutse operaator (!!): Muudab nullable-tüübi non-nullable-ks. Kui väärtus on null, visatakse NullPointerException. Kasutamine on tugevalt soovitatav vältida, kuna see võib põhjustada rakenduse kokkuvarisemise.

  4. if plokk null kontrolliga: 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
}