Wat zijn 'nullable' types in Kotlin en hoe werken ze?
sobes.tech AI
Antwoord van AI
Nullable types in Kotlin zijn types die zowel een waarde als null kunnen bevatten. Ze worden expliciet aangeduid met het symbool ? na de type naam.
De werking is gebaseerd op het type systeem van Kotlin, dat NullPointerException tijdens de compilatie voorkomt. De compiler vereist een expliciete controle op null voordat je toegang krijgt tot de leden van een nullable object.
De belangrijkste manieren om veilig met nullable types te werken:
-
Controle op
nullmetif:fun printLength(str: String?) { if (str != null) { println(str.length) // Veilige aanroep na null-controle } else { println("String null") } } -
Veilige aanroep operator (
?.): Geeftnullterug als het objectnullis, anders het resultaat van de aanroep.val safeLength: Int? = str?.length // Als str null is, wordt safeLength null -
Elvis operator (
?:): Biedt een standaardwaarde als de uitdrukking links van de operatornullis.val lengthOrDefault: Int = str?.length ?: 0 // Als str null is, wordt lengthOrDefault 0 -
Operator voor expliciete niet-null bevestiging (
!!): Zet een nullable type om in een niet-nullable type. Voorzichtig gebruiken, want het gooit eenNullPointerExceptionals de waardenullis.val assertedLength: Int = str!!.length // Gooi NPE als str null is -
Functies let/run/apply/also met veilige aanroep:
str?.let { // Code wordt alleen uitgevoerd als str niet null is println("Lengte van de string: ${it.length}") }
Het nullable types systeem van Kotlin verhoogt de veiligheid aanzienlijk en vermindert de kans op NullPointerException vergeleken met talen waar null zonder expliciete aanduiding aan elk type kan worden toegewezen.