Sobes.tech
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}")
    }
}