Sobes.tech
Junior — Middle

Ce metode automate sunt create de compilator pentru data class și pentru ce sunt destinate?

sobes.tech AI

Răspuns de la AI

În Kotlin, pentru data class, compilatorul generează automat mai multe metode utile care facilitează lucrul cu obiecte:

  • equals() — pentru compararea obiectelor după valoarea tuturor proprietăților.
  • hashCode() — pentru obținerea unui cod hash compatibil cu equals().
  • toString() — returnează o reprezentare în șir a obiectului cu enumerarea tuturor proprietăților.
  • copy() — creează o copie a obiectului cu posibilitatea de a modifica anumite proprietăți.
  • Funcțiile componentN() — pentru destructurarea obiectului în variabile separate.

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) = user2
println(name) // Alice
println(age) // 31

Acești metodii simplifică lucrul cu obiecte imutabile și fac codul mai expresiv.