Sobes.tech
Junior — Middle

Qual è la differenza tra una data class e una classe standard in un linguaggio di programmazione?

sobes.tech AI

Risposta dell'AI

Nel linguaggio Kotlin (Android), una data class è una classe speciale progettata per memorizzare dati. La principale differenza rispetto a una classe normale è che il compilatore genera automaticamente diversi metodi utili per la data class:

  • equals() e hashCode() per confrontare gli oggetti per contenuto,
  • toString() con output informativo,
  • copy() per creare copie con campi modificati,
  • componenti (component1(), component2(), ecc.) per la destrutturazione.

Una classe normale non ha questi metodi di default, devono essere scritti manualmente se necessari.

Esempio di data class:

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

val user1 = User("Alice", 30)
val user2 = user1.copy(age = 31)
println(user1) // User(name=Alice, age=30)

Pertanto, la data class è utile per modelli di dati dove semplicità e confronto corretto degli oggetti sono importanti.