Junior — Middle
Szabad-e változókat (var) használni a data class konstruktorának paramétereiben Kotlinban?
sobes.tech MI
Válasz az MI-től
Kotlinban a data class konstruktor paramétereiben nem lehet a var módosítót használni. A data class konstruktor paraméterei alapértelmezés szerint val (nem módosítható) vagy var (módosítható), de a konstruktor paramétereinek deklarálásakor egyértelműen meg kell adni a var vagy val értékét.
Például, helyes data class deklaráció var-rel:
data class User(var name: String, val age: Int)
Ha nem adunk meg var vagy val-t, a paraméterek egyszerűen csak konstruktor paraméterek lesznek, de nem a osztály tulajdonságai, és a data class nem tudja generálni a szükséges metódusokat (equals, hashCode, toString) ezekhez.
Ezért nem lehet egyszerűen csak var-t használni val vagy var nélkül a konstruktor paramétereiben — egyértelműen meg kell adni a var vagy val értékét.