Sobes.tech
Junior — Middle

Qual è lo scopo di una classe dichiarata con il modificatore sealed?

sobes.tech AI

Risposta dell'AI

Una classe dichiarata con il modificatore sealed è progettata per limitare l'ereditarietà. Tale classe può avere sottoclassi, ma solo quelle dichiarate nello stesso file. Questo permette di controllare e fissare la gerarchia di ereditarietà, rendendola più prevedibile e sicura.

Ad esempio, in Kotlin, le classi sealed sono spesso usate per rappresentare un insieme limitato di stati o varianti, il che è utile quando si lavora con espressioni when, dove il compilatore può verificare la completezza della gestione di tutte le varianti.

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("Dati: ${result.data}")
        is Result.Error -> println("Errore: ${result.error.message}")
    }
}