Explica ce este siguranța null în limbajul Kotlin.
sobes.tech AI
Răspuns de la AI
Siguranța null — este o funcție a limbajului Kotlin care previne erorile legate de referințele null. Se realizează prin crearea a două tipuri de referințe: nullable (permite null) și non-nullable (nu permite null).
Tipurile non-nullable sunt declarate ca de obicei:
var nonNullableString: String = "Hello" // Nu poate fi null
Tipurile nullable sunt declarate folosind simbolul ? după numele tipului:
var nullableString: String? = "Hello" // Poate fi null
nullableString = null
Kotlin necesită o gestionare explicită a tipurilor nullable, evitând accesul direct la membrii lor fără verificare prealabilă pentru null. Pentru aceasta, sunt disponibile următoarele mecanisme:
-
Operatorul de apel sigur (
?.): Apelează o metodă sau accesează o proprietate doar dacă obiectul nu estenull. În caz contrar, returneazănull.val length = nullableString?.length // length va fi `Int?` sau `null` -
Operatorul Elvis (
?:): Oferă o valoare implicită dacă expresia din stânga operatorului estenull.val nonNullLength = nullableString?.length ?: 0 // nonNullLength va fi `Int`, 0 dacă nullableString este null -
Operatorul de afirmare non-null (
!!): Convertește un tip nullable în non-nullable. Dacă valoarea estenull, se aruncă o excepțieNullPointerException. Este utilizat atunci când dezvoltatorul este sigur că valoarea nu estenull.val sureLength = nullableString!!.length // Va arunca NullPointerException dacă nullableString este null -
Verificări cu if: Verificare tradițională pentru
nullcuif. Compilatorul face un smart cast (cast inteligent) al tipului nullable în non-nullable în interiorul bloculuiif, dacă verificarea trece.if (nullableString != null) { val length = nullableString.length // Aici nullableString este tratat ca String }
Aceste mecanisme permit gestionarea explicită a situațiilor în care o variabilă poate fi null, reducând semnificativ probabilitatea apariției unei excepții NullPointerException în timpul execuției.