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