Leg uit wat null safety is in de Kotlin-taal.
sobes.tech AI
Antwoord van AI
Null safety — dit is een functie van de programmeertaal Kotlin die fouten gerelateerd aan null-verwijzingen voorkomt. Het wordt bereikt door twee typen referenties te creëren: nullable (toestaan null) en non-nullable (verbieden null).
Non-nullable types worden zoals gewoonlijk gedeclareerd:
var nonNullableString: String = "Hello" // Kan niet null zijn
Nullable types worden gedeclareerd met het symbool ? na de type naam:
var nullableString: String? = "Hello" // Kan null zijn
nullableString = null
Kotlin vereist expliciete handling van nullable types, waardoor directe toegang tot hun leden zonder voorafgaande null-controle wordt voorkomen. Hiervoor worden de volgende mechanismen gebruikt:
-
Veilige aanroepoperator (
?.): Roept een methode of eigenschap aan alleen als het object nietnullis. Anders geeft hetnullterug.val length = nullableString?.length // length wordt Int? of null -
Elvis-operator (
?:): Geeft een standaardwaarde terug als de uitdrukking links van de operatornullis.val nonNullLength = nullableString?.length ?: 0 // nonNullLength wordt Int, 0 als nullableString null is -
Niet-null-assertie-operator (
!!): Converteert een nullable type naar non-nullable. Als de waardenullis, wordt eenNullPointerExceptiongegooid. Gebruikt wanneer de ontwikkelaar zeker weet dat de waarde nietnullis.val sureLength = nullableString!!.length // Gooit NullPointerException als nullableString null is -
if-controles: Traditionele controle opnullmetif. De compiler voert een slimme cast uit van nullable naar non-nullable binnen deif-blok, als de controle slaagt.if (nullableString != null) { val length = nullableString.length // Hier wordt nullableString behandeld als String }
Deze mechanismen maken het mogelijk om expliciet situaties te beheren waarin een variabele null kan zijn, wat de kans op NullPointerException tijdens het uitvoeren van het programma aanzienlijk vermindert.