Junior — Middle
Vai ir atļauts izmantot mainīgos (var) data class konstruktoru parametros Kotlin?
sobes.tech AI
Atbilde no AI
Kotlinā konstruktoru parametriem data class nevar izmantot modifikatoru var. Data class konstruktoru parametri ir pēc noklusējuma val (nepārvērtējami) vai var (pārvērtējami), bet, deklarējot konstruktoru parametrus, ir skaidri jānorāda var vai val.
Piemēram, pareiza data class deklarācija ar var:
data class User(var name: String, val age: Int)
Ja netiek norādīts var vai val, parametri būs tikai konstruktoru parametri, bet ne klases īpašības, un data class nevarēs ģenerēt nepieciešamās metodes (equals, hashCode, toString) tiem.
Tādēļ nav atļauts vienkārši izmantot var bez val vai var konstruktoru parametru data class — ir skaidri jānorāda var vai val.