Null-Sicherheit
Verstehen Sie das Null-Sicherheitssystem von Kotlin: nullable Typen, den Safe-Call-Operator, den Elvis-Operator und die Vermeidung von NullPointerExceptions.
Null-Sicherheit ist eine kostenlose Android Academy-Lektion auf CoddyKit. Dies ist Lektion 1 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Android Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Android Academy-Kurs umfasst insgesamt 4 Lektionen.
Der milliardenschwere Fehler
In Java kann jede Variable null sein und zur Laufzeit eine NullPointerException (NPE) verursachen — einen der häufigsten Abstürze in Android-Apps.
Tony Hoare, der null erfunden hat, bezeichnete es als seinen milliardenschweren Fehler.
Kotlin verhindert NPEs bereits zur Compilezeit mit seinem System der Null-Sicherheit.
Nullable und Non-Nullable
In Kotlin sind Typen standardmäßig non-nullable. Um null zu erlauben, fügen Sie dem Typ ? hinzu:
String— garantiert niemals nullString?— kann null sein
Der Compiler erzwingt diese Regel — er lässt nicht zu, dass Sie null einem non-nullable Typ zuweisen.
Beispiel für nullable Typen
Der Compiler erkennt Fehler mit null, bevor Ihre App ausgeführt wird:
fun main() {
val name: String = "Alice" // never null
// name = null // COMPILE ERROR
var nickname: String? = "Al" // nullable
nickname = null // OK
println(name)
println(nickname) // null
}Safe-Call-Operator ?.
Der Safe-Call-Operator ?. ruft eine Methode nur auf, wenn das Objekt nicht null ist. Ist es null, gibt der Operator null zurück, anstatt einen Absturz zu verursachen.
nickname?.length → gibt die Länge zurück oder null, wenn nickname null ist.
Safe Calls in Aktion
Verwenden Sie ?., um sicher auf nullable Eigenschaften zuzugreifen:
fun main() {
var text: String? = "Hello"
println(text?.length) // 5
println(text?.uppercase()) // HELLO
text = null
println(text?.length) // null (no crash!)
println(text?.uppercase()) // null
}Elvis-Operator ?:
Der Elvis-Operator ?: liefert einen Standardwert, wenn ein Ausdruck null ist:
val len = text?.length ?: 0
Lesen Sie dies als: „die Länge von text oder 0, wenn text null ist“.
Benannt nach dem Elvis-Emoji 🕺, dessen Frisur wie ?: aussieht.
Beispiel für den Elvis-Operator
Legen Sie mit ?: sichere Standardwerte fest:
fun main() {
var name: String? = "Bob"
println(name?.length ?: 0) // 3
name = null
println(name?.length ?: 0) // 0
val display = name ?: "Anonymous"
println(display) // Anonymous
}Null-Prüfungen mit if
Innerhalb eines Blocks if (x != null) wandelt Kotlin den nullable Typ automatisch per Smart Cast in einen non-nullable Typ um — Sie müssen innerhalb des Blocks kein ?. verwenden.
Beispiel für einen Smart Cast
Kotlin grenzt den Typ nach einer Null-Prüfung ein:
fun printLength(text: String?) {
if (text != null) {
// 'text' is now String (non-nullable) here
println("Length: ${text.length}") // no ?. needed
} else {
println("text is null")
}
}
fun main() {
printLength("Kotlin") // Length: 6
printLength(null) // text is null
}Schnelltest
Welchen Wert ergibt null?.length ?: -1?
Rückblick: Null-Sicherheit
Das Null-Sicherheitssystem von Kotlin verhindert NPEs:
- Typen sind standardmäßig non-nullable; fügen Sie
?hinzu, um null zu erlauben ?.Safe Call — gibt null zurück, anstatt einen Absturz zu verursachen?:Elvis-Operator — liefert bei null einen Standardwert- Smart Casts innerhalb von
if (x != null)-Blöcken
Als Nächstes: Code mit Klassen und Objekten strukturieren.
Häufig gestellte Fragen
Ist die Lektion „Null-Sicherheit“ kostenlos?
Ja — der vollständige Text von „Null-Sicherheit“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Android Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Android Academy-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Null-Sicherheit“?
Verstehen Sie das Null-Sicherheitssystem von Kotlin: nullable Typen, den Safe-Call-Operator, den Elvis-Operator und die Vermeidung von NullPointerExceptions. Du übst Android Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um Android Academy zu starten?
Keine Vorkenntnisse erforderlich. Android Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 1 von 4.
Wie lange dauert die Lektion „Null-Sicherheit“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser Android Academy-Lektion Code schreiben und ausführen?
Ja. Jede Android Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- Null-Sicherheit
- Klassen und Objekte
- Datenklassen und versiegelte Klassen
- Erweiterungs- und höherwertige Funktionen