Junior — Middle
Je povolené používať premenné (var) v parametroch konštruktora data class v Kotlin?
sobes.tech AI
Odpoveď od AI
V Kotlin-e nie je možné použiť modifikátor var v parametroch konštruktora data triedy. Parametre konštruktora data triedy sú predvolene val (nepoužiteľné na zmenu) alebo var (použiteľné na zmenu), ale pri deklarácii parametrov konštruktora je potrebné explicitne uviesť var alebo val.
Napríklad správna deklarácia data triedy s var:
data class User(var name: String, val age: Int)
Ak neuvediete var alebo val, parametre budú len parametrami konštruktora, ale nebudú vlastnosťami triedy, a data trieda nebude môcť generovať potrebné metódy (equals, hashCode, toString) pre nich.
Preto nie je možné používať len var bez val alebo var v parametroch konštruktora data triedy — je potrebné explicitne uviesť var alebo val.