Junior — Middle
Que características e limitações existem nas classes de dados em Kotlin?
sobes.tech IA
Resposta da IA
As classes de dados (data class) em Kotlin destinam-se a armazenar dados e fornecem automaticamente métodos úteis: equals(), hashCode(), toString(), copy() e funções para destruição.
Características e limitações:
- A classe deve ter pelo menos um parâmetro no construtor.
- Todos os parâmetros do construtor, declarados no
primary constructor, tornam-se automaticamente propriedades. - A classe não pode ser abstrata, aberta, interna ou herdar de outras classes (mas pode implementar interfaces).
- O compilador gera métodos apenas para as propriedades declaradas no construtor, não para propriedades adicionais.
- Pode-se sobrescrever os métodos gerados se desejar alterar o comportamento.
Exemplo:
data class User(val name: String, val age: Int)
val user1 = User("Alice", 30)
val user2 = user1.copy(age = 31) // criará um novo objeto com a idade alterada
println(user1) // User(name=Alice, age=30)