Junior — Middle
Care este scopul unei clase declarate cu modificatorul sealed?
sobes.tech AI
Răspuns de la AI
O clasă declarată cu modificatorul sealed este destinată să limiteze moștenirea. O astfel de clasă poate avea subclase, dar numai cele declarate în același fișier. Acest lucru permite controlul și fixarea ierarhiei de moștenire, făcând-o mai previzibilă și sigură.
De exemplu, în Kotlin, clasele sealed sunt adesea folosite pentru a reprezenta un set limitat de stări sau variante, ceea ce este convenabil atunci când lucrați cu expresii when, unde compilatorul poate verifica completitudinea tratamentului tuturor variantelor.
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("Date: ${result.data}")
is Result.Error -> println("Eroare: ${result.error.message}")
}
}