Was sind 'nullable'-Typen in Kotlin und wie funktionieren sie?
sobes.tech KI
Antwort von AI
Nullable-Typen in Kotlin sind Typen, die sowohl einen Wert als auch null enthalten können. Sie werden explizit durch das Symbol ? nach dem Typnamen gekennzeichnet.
Das Funktionsprinzip basiert auf dem Kotlin-Typensystem, das NullPointerException während der Kompilierung verhindert. Der Compiler erfordert eine explizite Überprüfung auf null, bevor auf die Mitglieder eines nullable-Objekts zugegriffen wird.
Die wichtigsten Methoden, um sicher mit nullable-Typen zu arbeiten:
-
null-Prüfung mitif:fun printLength(str: String?) { if (str != null) { println(str.length) // Sicherer Aufruf nach null-Prüfung } else { println("String ist null") } } -
Sicherer Aufruf-Operator (
?.): Gibtnullzurück, wenn das Objektnullist, sonst das Ergebnis des Aufrufs.val safeLength: Int? = str?.length // Wenn str null ist, ist safeLength null -
Elvis-Operator (
?:): Ermöglicht die Angabe eines Standardwerts, falls der Ausdruck links vom Operatornullist.val lengthOrDefault: Int = str?.length ?: 0 // Wenn str null ist, ist lengthOrDefault 0 -
Nicht-null-Affirmationsoperator (
!!): Wandelt einen nullable-Typ in einen non-null-Typ um. Sollte mit Vorsicht verwendet werden, da eineNullPointerExceptionausgelöst wird, wenn der Wertnullist.val assertedLength: Int = str!!.length // Löst NPE aus, wenn str null ist -
Funktionen let/run/apply/also mit sicherem Aufruf:
str?.let { // Der Code wird nur ausgeführt, wenn str nicht null ist println("Länge der Zeichenkette: ${it.length}") }
Das nullable-Typensystem von Kotlin erhöht die Sicherheit erheblich und reduziert die Wahrscheinlichkeit von NullPointerException im Vergleich zu Sprachen, in denen null ohne explizite Kennzeichnung jedem Typ zugewiesen werden kann.