Kotlin verhindert viele NullPointer-Fehler schon beim Übersetzen. Mit ?. (sicherer Aufruf) rufst du Methoden nur auf, wenn der Wert nicht null ist. Mit ?: (Elvis-Operator) gibst du einen Ersatzwert an. !! erzwingt „nicht null“ und wirft bei null einen Fehler — sparsam einsetzen.
Mit if (x != null) erkennt der Compiler den Wert danach automatisch als nicht null (Smart Cast).
val text: String? = null
println(text?.length) // null, kein Absturz
println(text?.length ?: 0) // 0 als Ersatzwert
val name: String? = "Mia"
if (name != null) {
println(name.uppercase()) // Smart Cast: name ist hier String
}Merke
?.ruft nur bei nicht-null auf?:liefert einen Ersatzwert!!erzwingt nicht-null und kann abstürzen
Aufgabe
Lies einen optionalen Text und gib seine Länge oder 0 aus.