Selgitage, mis on null-turvalisus Kotlinis.
sobes.tech AI
Vastus AI-lt
Null safety — see on Kotlin keele funktsioon, mis ennetab vigu, mis on seotud null viidetega. Seda saavutatakse kahe viidetüübi loomisega: nullable (lubab null) ja non-nullable (ei luba null).
Non-nullable tüübid deklareeritakse tavaliselt:
var nonNullableString: String = "Hello" // Ei saa olla null
Nullable tüübid deklareeritakse kasutades sümbolit ? pärast tüübi nime:
var nullableString: String? = "Hello" // Võib olla null
nullableString = null
Kotlin nõuab nullable tüüpide selget töötlemist, vältides nende liikmete otse kasutamist ilma eelneva null kontrollita. Selleks on järgmised mehhanismid:
-
Ohutu väljakutse operaator (
?.): Kutsub meetodi või pääseb omadusele ainult juhul, kui objekt ei olenull. Vastasel juhul tagastabnull:val length = nullableString?.length // length on Int? või null -
Elvis operaator (
?:): Pakub vaikimisi väärtust, kui väljendus vasakul onnull:val nonNullLength = nullableString?.length ?: 0 // nonNullLength on Int, 0 kui nullableString on null -
!!-ei-null kinnituse operaator: Muudab nullable tüübi non-nullable-ks. Kui väärtus onnull, viskabNullPointerException. Kasutatakse, kui arendaja on kindel, et väärtus ei olenull:val sureLength = nullableString!!.length // Viskab NullPointerException, kui nullableString on null -
if kontrollid: Traditsiooniline
nullkontrollif-iga. Smart cast (targa tüübi teisendus) toimub pärastnullkontrolli, kui see on edukas:if (nullableString != null) { val length = nullableString.length // Siin käsitletakse nullableString kui String }
Need mehhanismid võimaldavad selgelt hallata olukordi, kus muutuja võib olla null, mis oluliselt vähendab NullPointerException tekkimise tõenäosust programmi käitamise ajal.