Sobes.tech
Junior — Middle

Quali sono le caratteristiche e le limitazioni delle classi dati in Kotlin?

sobes.tech AI

Risposta dell'AI

Le classi dati (data class) in Kotlin sono progettate per memorizzare dati e forniscono automaticamente metodi utili: equals(), hashCode(), toString(), copy() e funzioni di destrutturazione.

Caratteristiche e limitazioni:

  • La classe deve avere almeno un parametro nel costruttore.
  • Tutti i parametri del costruttore, dichiarati nel primary constructor, diventano automaticamente proprietà.
  • La classe non può essere astratta, aperta, interna o ereditare da altre classi (ma può implementare interfacce).
  • Il compilatore genera metodi solo per le proprietà dichiarate nel costruttore, non per proprietà aggiuntive.
  • È possibile sovrascrivere i metodi generati se si desidera modificare il comportamento.

Esempio:

data class User(val name: String, val age: Int)

val user1 = User("Alice", 30)
val user2 = user1.copy(age = 31) // creerà un nuovo oggetto con età modificata
println(user1) // User(name=Alice, age=30)