Sobes.tech
Junior — Middle

Koje karakteristike i ograničenja postoje kod klasa podataka u Kotlinu?

sobes.tech АИ

Одговор од АИ

Data klase (data class) u Kotlinu su namenjene za skladištenje podataka i automatski pružaju korisne metode: equals(), hashCode(), toString(), copy() i funkcije za destrukturiranje.

Karakteristike i ograničenja:

  • Klasa mora imati bar jedan parametar u konstruktoru.
  • Svi parametri konstruktora, deklarisani u primary constructor, automatski postaju svojstva.
  • Klasa ne može biti apstraktna, otvorena, interna ili naslediti od drugih klasa (ali može implementirati interfejse).
  • Kompajler generiše metode samo za svojstva deklarisana u konstruktoru, a ne za dodatna svojstva.
  • Moguće je prepisati generisane metode ako je potrebno promeniti ponašanje.

Primer:

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

val user1 = User("Alice", 30)
val user2 = user1.copy(age = 31) // kreira novi objekat sa izmenjenom starosti
println(user1) // User(name=Alice, age=30)