Junior — Middle
Welche Vorteile und Anwendungsfälle kennst du für die sealed class in Kotlin?
sobes.tech KI
Antwort von AI
Die versiegelte Klasse in Kotlin wird verwendet, um die Vererbungs-Hierarchie einzuschränken. Alle Unterklassen einer versiegelten Klasse müssen in derselben Datei wie die versiegelte Klasse selbst deklariert werden. Dies ermöglicht es dem Compiler, alle möglichen Varianten von Erben zu kennen, was bei der Verwendung in when-Ausdrücken praktisch ist, ohne eine else-Klausel schreiben zu müssen.
Vorteile:
- Typsicherheit: Der Compiler überprüft die Vollständigkeit der Behandlung aller Varianten.
- Praktisch zur Modellierung begrenzter Zustands- oder Ereignissets.
Anwendungsszenarien:
- Implementierung von Zuständen im "Zustand"-Muster.
- Verarbeitung von Ereignissen oder Befehlen.
- Darstellung einer begrenzten Menge von Optionen, z.B. API-Antworten.
Beispiel:
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("Daten: ${result.data}")
is Result.Error -> println("Fehler: ${result.error.message}")
Result.Loading -> println("Laden...")
}
}