Sobes.tech
Junior

Wat gebeurt er als je toegang krijgt tot een nullable veld van een object in Kotlin?

sobes.tech AI

Antwoord van AI

Als je toegang krijgt tot een nullable veld van een object zonder te controleren op null, zal er een NullPointerException (NPE) optreden.

Voor veilige toegang kun je de volgende benaderingen gebruiken:

  1. Veilige aanroepoperator (?.): Geeft null terug als het object null is, anders voert het de aanroep uit.

    // Stel dat user? een User is?
    val userName: String? = user?.name
    
  2. Niet-null bevestigingsoperator (!!): Bevestigt expliciet dat het object niet null is. Als dat wel zo is, wordt een NullPointerException gegooid.

    // Bewust gebruiken, kan leiden tot NPE
    val userName: String = user!!.name
    
  3. Elvis-operator (?:): Biedt een standaardwaarde als het linkerobject null is.

    val userName: String = user?.name ?: "Onbekende gebruiker"
    
  4. if of when blokken: Expliciete null-controle.

    if (user != null) {
        val userName = user.name
    } else {
        // Afhandeling voor het geval user null is
    }
    
  5. Functies let, run, apply, with met veilige aanroep:

    user?.let {
        // `it` binnen dit blok is een niet-nullbare `User`
        val userName = it.name
    }
    

De keuze van aanpak hangt af van de logica van het programma en het gewenste gedrag in het geval dat het object null is. Over het algemeen wordt aanbevolen om de veilige aanroepoperator (?.) of de Elvis-operator (?:) te gebruiken om NPE te voorkomen. De !!-operator moet met voorzichtigheid worden gebruikt.