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)