Sobes.tech
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...")
    }
}