Sobes.tech
Junior

Wat gebeurt er als je een veld van een object dat null kan zijn, benadert?

sobes.tech AI

Antwoord van AI

NullPointerException (NPE). Treedt op wanneer je probeert een methode aan te roepen of toegang te krijgen tot een veld van een object waarvan de referentie null is.

Voorbeeld:

data class User(val name: String)

fun printUserName(user: User?) {
    // Als user == null, zal hier een NullPointerException optreden
    println(user.name)
}

Om NPE te voorkomen, kun je gebruik maken van:

  • null-controles:
    fun printUserName(user: User?) {
        if (user != null) {
            println(user.name)
        } else {
            println("Gebruiker is null")
        }
    }
    
  • Veilige aanroep-operator (?.):
    fun printUserName(user: User?) {
        println(user?.name) // Geeft null weer als user == null, anders de naam
    }
    
  • Elvis-operator (?:):
    fun printUserName(user: User?) {
        val userName = user?.name ?: "Standaardnaam" // Toewijst "Standaardnaam" als user?.name null is
        println(userName)
    }
    
  • Niet-null types (in Kotlin):
    // Deze methode accepteert alleen niet-null User-objecten
    fun printUserName(user: User) {
        println(user.name) // Gegarandeerd niet null
    }