Sobes.tech
Junior — Middle

Kādus automātiskos metodes izstrādā kompilators datu klasei un kam tās paredzētas?

sobes.tech AI

Atbilde no AI

Kotlinā, data class gadījumā, kompilators automātiski ģenerē vairākas noderīgas metodes, kas atvieglo darbu ar objektiem:

  • equals() — salīdzina objektus pēc visu īpašību vērtībām.
  • hashCode() — iegūst saskaņotu ar equals() hash kodu.
  • toString() — atgriež objekta teksta reprezentāciju ar visu īpašību sarakstu.
  • copy() — izveido objekta kopiju ar iespēju mainīt dažas īpašības.
  • componentN() funkcijas — objekta destrukturizācija atsevišķās mainīgajās.

Piemērs:

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

Šīs metodes vienkāršo darbu ar nemainīgiem objektiem un padara kodu izteiksmīgāku.