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