Junior — Middle
Je povoleno používat proměnné (var) v parametrech konstruktoru data class v Kotlinu?
sobes.tech AI
Odpověď od AI
V Kotlinu nelze v parametrech konstruktoru datové třídy používat modifikátor var. Parametry konstruktoru datové třídy jsou ve výchozím nastavení val (nem měnitelné) nebo var (měnitelné), ale při deklaraci parametrů konstruktoru je nutné výslovně uvést var nebo val.
Například správné deklarace datové třídy s var:
data class User(var name: String, val age: Int)
Pokud neuvedete var nebo val, budou parametry pouze parametry konstruktoru, nikoli vlastnosti třídy, a datová třída nebude moci generovat potřebné metody (equals, hashCode, toString) pro ně.
Proto nelze používat pouze var bez val nebo var v parametrech konstruktoru datové třídy — je nutné výslovně uvést var nebo val.