Sobes.tech
Junior

Kaip turėtų būti tikrinamos reikšmės, kurios yra null?

sobes.tech AI

Atsakymas iš AI

Kotlin'e naudojami šie požiūriai dirbant su nullable tipais ir tikrinant null:

  1. Saugus iškvietimo operatorius (?.): Leidžia iškviesti metodus arba pasiekti savybes objekto tik tuo atveju, jei objektas nėra null. Jei objektas yra null, visas iškvietimas grąžina null.

  2. Elvis operatorius (?:): Leidžia pateikti numatytąją reikšmę, jei išraiška kairėje operatoriaus yra null.

  3. Nesaugus iškvietimo operatorius (!!): Konvertuoja nullable tipą į non-nullable. Jei reikšmė yra null, bus išmesta NullPointerException. Naudojimas yra griežtai nerekomenduojamas, nes gali sukelti programos žlugimą.

  4. if blokas su null patikra: Tradicinis būdas patikrinti, dažnai naudojamas kartu su Kotlin smart castais.

// Saugus iškvietimo operatorius ?.
val length = text?.length

// Smart cast po `null` patikros
if (text != null) {
    val length = text.length // tekstas automatiškai paverčiamas į String (non-nullable)
}

// Elvis operatorius ?:
val nonNullText = text ?: "Numatytoji reikšmė"

// Nesaugus iškvietimo operatorius !! (venkite, jei įmanoma)
val forceLength = text!!.length // Gali išmesti NullPointerException

Java kalboje null patikra atliekama tik su sąlyginiais operatoriais if:

// Java
if (text != null) {
    int length = text.length();
} else {
    // Apdorojimas, kai tekstas yra null
}