Sobes.tech
Junior

Was passiert, wenn auf ein Feld eines Objekts zugegriffen wird, das null sein kann?

sobes.tech KI

Antwort von AI

NullPointerException (NPE). Tritt auf, wenn Sie versuchen, eine Methode aufzurufen oder auf ein Feld eines Objekts zuzugreifen, dessen Referenz null ist.

Beispiel:

data class User(val name: String)

fun printUserName(user: User?) {
    // Wenn user == null, tritt eine NullPointerException auf
    println(user.name)
}

Um NPE zu vermeiden, können Sie:

  • Null-Checks verwenden:
    fun printUserName(user: User?) {
        if (user != null) {
            println(user.name)
        } else {
            println("Benutzer ist null")
        }
    }
    
  • Sicherer Aufruf-Operator (?.):
    fun printUserName(user: User?) {
        println(user?.name) // Gibt null aus, wenn user == null, sonst den Namen
    }
    
  • Elvis-Operator (?:):
    fun printUserName(user: User?) {
        val userName = user?.name ?: "Standardname" // Weist "Standardname" zu, wenn user?.name == null
        println(userName)
    }
    
  • Nicht-null-Typen (in Kotlin):
    // Diese Methode akzeptiert nur nicht-null-Objekte vom Typ User
    fun printUserName(user: User) {
        println(user.name) // Garantiert nicht null
    }