Sobes.tech
Junior — Middle

O que é uma classe selada e quais são as suas principais vantagens e características?

sobes.tech IA

Resposta da IA

A classe selada (sealed class) é um tipo especial de classe em Kotlin (frequentemente usado no desenvolvimento Android), que restringe a hierarquia de herança. A ideia principal é que todas as subclasses de uma classe selada devem ser declaradas no mesmo arquivo que a própria classe.

Vantagens e características:

  • Permite ao compilador conhecer o conjunto completo de subclasses, o que melhora a segurança e a conveniência ao trabalhar com expressões when — o compilador verificará se todas as opções estão cobertas.
  • Facilita a modelagem de hierarquias limitadas, por exemplo, estados ou eventos.
  • Proíbe a criação de novas subclasses fora do arquivo, aumentando o controle sobre a arquitetura.

Exemplo:

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}")
    }
}