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:
-
Saugus iškvietimo operatorius (
?.): Leidžia iškviesti metodus arba pasiekti savybes objekto tik tuo atveju, jei objektas nėranull. Jei objektas yranull, visas iškvietimas grąžinanull. -
Elvis operatorius (
?:): Leidžia pateikti numatytąją reikšmę, jei išraiška kairėje operatoriaus yranull. -
Nesaugus iškvietimo operatorius (
!!): Konvertuoja nullable tipą į non-nullable. Jei reikšmė yranull, bus išmestaNullPointerException. Naudojimas yra griežtai nerekomenduojamas, nes gali sukelti programos žlugimą. -
ifblokas sunullpatikra: 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
}