Sobes.tech
Junior — Middle

¿En qué consiste la finalidad de una clase declarada con el modificador sealed?

sobes.tech AI

Respuesta de la IA

Una clase declarada con el modificador sealed está diseñada para limitar la herencia. Tal clase puede tener subclases, pero solo aquellas que se declaren en el mismo archivo. Esto permite controlar y fijar la jerarquía de herencia, haciéndola más predecible y segura.

Por ejemplo, en Kotlin, las clases sealed se usan a menudo para representar un conjunto limitado de estados o variantes, lo cual es útil al trabajar con expresiones when, donde el compilador puede verificar la exhaustividad del manejo de todas las variantes.

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