Sobes.tech
Junior — Middle

Qual é a finalidade de uma classe declarada com o modificador sealed?

sobes.tech IA

Resposta da IA

Uma classe declarada com o modificador sealed destina-se a limitar a herança. Tal classe pode ter subclasses, mas apenas aquelas declaradas no mesmo ficheiro. Isto permite controlar e fixar a hierarquia de herança, tornando-a mais previsível e segura.

Por exemplo, em Kotlin, as classes sealed são frequentemente usadas para representar um conjunto limitado de estados ou variantes, o que é útil ao trabalhar com expressões when, onde o compilador pode verificar a completude do tratamento de todas as 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("Dados: ${result.data}")
        is Result.Error -> println("Erro: ${result.error.message}")
    }
}