Sobes.tech
Junior — Middle

Puteți explica cum este implementată și funcționează intern data class în Kotlin?

sobes.tech AI

Răspuns de la AI

În Kotlin, data class este o clasă specială destinată stocării datelor. La compilare, compilatorul generează automat mai multe metode utile:

  • equals() și hashCode() — pentru compararea obiectelor după valoare, nu după referință.
  • toString() — pentru o reprezentare convenabilă a obiectului ca șir de caractere.
  • copy() — pentru crearea unei copii a obiectului cu posibilitatea de a modifica anumite proprietăți.
  • Funcții componentN() — pentru destructurarea obiectului.

Intern, data class conține proprietăți declarate în constructorul primar, pentru care sunt generate metode de acces. Acest lucru evită codul repetitiv și face lucrul cu astfel de clase mai ușor și mai sigur.

Exemplu:

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)
println(user1 == user2) // false
val (name, age) = user1
println(name) // Alice