Sobes.tech
Junior — Middle

Czy dozwolone jest używanie zmiennych (var) w parametrach konstruktora data class w Kotlin?

sobes.tech AI

Odpowiedź od AI

W Kotlinie, w parametrach konstruktora klasy danych nie można używać modyfikatora var. Parametry konstruktora klasy danych domyślnie są val (niemutowalne) lub var (mutowalne), ale przy deklaracji parametrów konstruktora trzeba wyraźnie wskazać var lub val.

Na przykład poprawne zadeklarowanie klasy danych z var:

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

Jeśli nie wskażesz var lub val, parametry będą po prostu parametrami konstruktora, ale nie będą właściwościami klasy, i klasa danych nie będzie mogła wygenerować potrzebnych metod (equals, hashCode, toString).

W związku z tym, nie można używać po prostu var bez val lub var w parametrach konstruktora klasy danych — trzeba wyraźnie wskazać var lub val.