Sobes.tech
Junior — Middle

Jakie cechy i ograniczenia mają klasy danych w Kotlin?

sobes.tech AI

Odpowiedź od AI

Klasy danych (data class) w Kotlinie służą do przechowywania danych i automatycznie dostarczają przydatne metody: equals(), hashCode(), toString(), copy() oraz funkcje destrukturyzacji.

Cechy i ograniczenia:

  • Klasa musi mieć co najmniej jeden parametr w konstruktorze.
  • Wszystkie parametry konstruktora, zadeklarowane w primary constructor, automatycznie stają się właściwościami.
  • Klasa nie może być abstrakcyjna, otwarta, wewnętrzna ani dziedziczyć po innych klasach (ale może implementować interfejsy).
  • Kompilator generuje metody tylko dla właściwości zadeklarowanych w konstruktorze, nie dla dodatkowych właściwości.
  • Można nadpisywać wygenerowane metody, jeśli chcesz zmienić ich zachowanie.

Przykład:

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

val user1 = User("Alice", 30)
val user2 = user1.copy(age = 31) // utworzy nowy obiekt z zmienionym wiekiem
println(user1) // User(name=Alice, age=30)