Junior — Middle
Jaké vlastnosti a omezení mají datové třídy v Kotlinu?
sobes.tech AI
Odpověď od AI
Datové třídy (data class) v Kotlinu jsou určeny pro ukládání dat a automaticky poskytují užitečné metody: equals(), hashCode(), toString(), copy() a destrukční funkce.
Vlastnosti a omezení:
- Třída musí mít alespoň jeden parametr v konstruktoru.
- Všechny parametry konstruktoru, deklarované v
primary constructor, se automaticky stávají vlastnostmi. - Třída nemůže být abstraktní, otevřená, vnitřní nebo dědit z jiných tříd (ale může implementovat rozhraní).
- Kompilátor generuje metody pouze pro vlastnosti deklarované v konstruktoru, nikoli pro další vlastnosti.
- Generované metody lze přepsat, pokud je třeba změnit chování.
Příklad:
data class User(val name: String, val age: Int)
val user1 = User("Alice", 30)
val user2 = user1.copy(age = 31) // vytvoří nový objekt se změněným věkem
println(user1) // User(name=Alice, age=30)