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