Sobes.tech
Junior — Middle

Wat is het doel van een klasse die is gedeclareerd met de modifier sealed?

sobes.tech AI

Antwoord van AI

Een klasse gedeclareerd met de modifier sealed is bedoeld om overerving te beperken. Zo'n klasse kan subklassen hebben, maar alleen die welke in hetzelfde bestand zijn gedeclareerd. Dit maakt het mogelijk om de hiërarchie van overerving te controleren en vast te leggen, waardoor deze voorspelbaarder en veiliger wordt.

Bijvoorbeeld, in Kotlin worden sealed klassen vaak gebruikt om een beperkte set staten of varianten weer te geven, wat handig is bij het werken met when uitdrukkingen, waarbij de compiler de volledigheid van de verwerking van alle varianten kan controleren.

sealed class Result {
    data class Success(val data: String) : Result()
    data class Error(val error: Throwable) : Result()
}

fun handleResult(result: Result) {
    when(result) {
        is Result.Success -> println("Data: ${result.data}")
        is Result.Error -> println("Error: ${result.error.message}")
    }
}