Android Academy · Les

Null safety

Krijg inzicht in Kotlin's null-safetysysteem: nullable typen, de safe-calloperator, de Elvis-operator en het voorkomen van NullPointerExceptions.

Les 1 van 411 stappen

Null safety is een gratis Android Academy-les op CoddyKit. Dit is les 1 van 4. Je kunt 3 lessen uit dit leerpad gratis volledig lezen — daarna ontgrendelt CoddyKit PRO alle lessen, plus praktische oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Android Academy. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Android Academy bevat in totaal 4 lessen.

De fout van een miljard dollar

In Java kan elke variabele null zijn, wat tijdens runtime een NullPointerException (NPE) veroorzaakt — een van de meest voorkomende crashes in Android-apps.

Tony Hoare, de bedenker van null, noemde dit zijn fout van een miljard dollar.

Kotlin voorkomt NPE's tijdens het compileren met zijn systeem voor nullveiligheid.

Nullable versus non-nullable

In Kotlin zijn typen standaard non-nullable. Voeg ? toe aan het type om null toe te staan:

  • String — kan nooit null zijn, gegarandeerd
  • String? — kan null zijn

De compiler dwingt dit af — je kunt geen null toewijzen aan een non-nullable type.

Voorbeeld van nullable typen

De compiler vangt fouten met null op voordat je app wordt uitgevoerd:

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
}

Veilige-aanroepoperator ?.

De veilige-aanroepoperator ?. roept een methode alleen aan als het object niet null is. Als het wel null is, retourneert de operator null in plaats van dat de app crasht.

nickname?.length → retourneert de lengte, of null als nickname null is.

Veilige aanroepen in actie

Gebruik ?. om veilig toegang te krijgen tot nullable eigenschappen:

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 ?:

De Elvis-operator ?: geeft een standaardwaarde wanneer een expressie null is:

val len = text?.length ?: 0

Lees dit als: "de lengte van text, of 0 als text null is".

De operator is genoemd naar de Elvis-emoji 🕺, waarvan het kapsel lijkt op ?:.

Voorbeeld van de Elvis-operator

Geef veilige standaardwaarden op met ?::

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-controles met if

Binnen een blok if (x != null) converteert Kotlin het nullable type automatisch met een smart cast naar een non-nullable type — je hoeft binnen het blok geen ?. te gebruiken.

Voorbeeld van een smart cast

Kotlin verfijnt het type na een null-controle:

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
}

Korte controle

Waartoe wordt null?.length ?: -1 geëvalueerd?

Samenvatting: nullveiligheid

Het systeem voor nullveiligheid van Kotlin voorkomt NPE's:

  • Typen zijn standaard non-nullable; voeg ? toe om null toe te staan
  • ?. veilige aanroep — retourneert null in plaats van dat de app crasht
  • ?: Elvis-operator — geeft een standaardwaarde bij null
  • Smart casts binnen blokken met if (x != null)

Hierna: code structureren met klassen en objecten.

Gratis beginnen

Leer Kotlin met een AI-tutor — gratis

Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.

Cursussen
36
Lessen
152

Veelgestelde vragen

Is de les “Null safety” gratis?

Ja — je kunt hier op het web alle 3 lessen van het leerpad Android Academy, waaronder “Null safety”, gratis volledig lezen. Daarna ontgrendelt CoddyKit PRO alle lessen, plus interactieve oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. De cursus Android Academy bevat in totaal 4 lessen.

Wat leer ik in “Null safety”?

Krijg inzicht in Kotlin's null-safetysysteem: nullable typen, de safe-calloperator, de Elvis-operator en het voorkomen van NullPointerExceptions. Je oefent met Android Academy door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.

Heb ik ervaring nodig om met Android Academy te beginnen?

Ervaring vooraf is niet nodig. Android Academy op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 1 van 4.

Hoe lang duurt de les “Null safety”?

De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.

Kan ik code schrijven en uitvoeren in deze les over Android Academy?

Ja. Elke les over Android Academy bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.

Alle lessen in deze cursus

  1. Null safety
  2. Klassen en objecten
  3. Dataklassen en sealed classes
  4. Extension functions en higher-order functions
← Terug naar Android Academy