Junior — Middle
Milyen automatikus módszereket hoz létre a fordító a data class számára, és mire szolgálnak?
sobes.tech MI
Válasz az MI-től
Kotlinban a data class-okhoz a fordító automatikusan generál több hasznos módszert, amelyek megkönnyítik az objektumokkal való munkát:
equals()— az összes tulajdonság értéke alapján történő összehasonlítás.hashCode()— egy olyan hash-kód lekérése, amely összhangban van azequals()-szel.toString()— az objektum összes tulajdonságát felsoroló szöveges reprezentációt ad vissza.copy()— az objektum másolatát készíti, lehetővé téve bizonyos tulajdonságok módosítását.componentN()függvények — az objektum destrukturálására külön változókra.
Példa:
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
Ezek a módszerek leegyszerűsítik a változatlan objektumokkal való munkát, és kifejezőbbé teszik a kódot.