Junior — Middle
Quais são as vantagens e cenários de uso da classe sealed em Kotlin?
sobes.tech IA
Resposta da IA
A classe selada em Kotlin é usada para restringir a hierarquia de herança. Todas as subclasses de uma classe selada devem ser declaradas no mesmo arquivo que a própria classe selada. Isso permite que o compilador conheça todas as variantes possíveis de herdeiros, o que é útil para uso em expressões when sem a necessidade de escrever um ramo else.
Vantagens:
- Segurança de tipos: o compilador verifica a completude do tratamento de todas as variantes.
- Conveniente para modelar conjuntos limitados de estados ou eventos.
Cenários de uso:
- Implementação de estados no padrão "estado".
- Manipulação de eventos ou comandos.
- Representação de um conjunto limitado de opções, por exemplo, respostas de API.
Exemplo:
sealed class Result {
data class Success(val data: String) : Result()
data class Error(val error: Throwable) : Result()
object Loading : Result()
}
fun handleResult(result: Result) {
when(result) {
is Result.Success -> println("Dados: ${result.data}")
is Result.Error -> println("Erro: ${result.error.message}")
Result.Loading -> println("Carregando...")
}
}