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)