Junior — Middle
Welke voordelen en gebruiksscenario's ken je van de sealed class in Kotlin?
sobes.tech AI
Antwoord van AI
De sealed class in Kotlin wordt gebruikt om de erfhiërarchie te beperken. Alle subklassen van een sealed class moeten in hetzelfde bestand als de sealed class zelf worden gedeclareerd. Dit stelt de compiler in staat om alle mogelijke varianten van afstammelingen te kennen, wat handig is bij gebruik in when-uitdrukkingen zonder dat een else-tak nodig is.
Voordelen:
- Typeveiligheid: de compiler controleert de volledigheid van de verwerking van alle varianten.
- Handig voor het modelleren van beperkte sets van toestanden of gebeurtenissen.
Gebruiksscenario's:
- Implementatie van toestanden in het "toestand"-patroon.
- Verwerking van gebeurtenissen of commando's.
- Weergave van een beperkte set opties, bijvoorbeeld API-antwoorden.
Voorbeeld:
sealed class Result {
data class Success(val data: String) : Result()
data class Error(val error: Throwable) : Result()
object Loading : Result()
}
fun handleResult(result: Result) {
when(result) {
is Result.Success -> println("Gegevens: ${result.data}")
is Result.Error -> println("Fout: ${result.error.message}")
Result.Loading -> println("Laden...")
}
}