Sobes.tech
Junior — Middle

Ar leidžiama naudoti kintamuosius (var) data class konstruktoriaus parametruose Kotlin?

sobes.tech AI

Atsakymas iš AI

Kotlin'e, data class konstruktoriaus parametruose negalima naudoti modifikatoriaus var. Data class konstruktoriaus parametrai pagal numatytuosius nustatymus yra val (nekeičiami) arba var (keičiami), tačiau deklaruojant parametrus reikia aiškiai nurodyti var arba val.

Pavyzdžiui, teisingas data class deklaravimas su var:

data class User(var name: String, val age: Int)

Jei nenurodyti var arba val, parametrai bus tik konstruktoriaus parametrai, bet ne klasės savybės, ir data class negalės sugeneruoti būtinų metodų (equals, hashCode, toString) jiems.

Todėl naudoti paprastą var be val arba var konstruktoriaus parametruose data class nėra leidžiama — būtina aiškiai nurodyti var arba val.