Sobes.tech
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)