Sobes.tech
Junior

Kokios kintamosios gali būti naudojamos duomenų klasėje (data class)?

sobes.tech AI

Atsakymas iš AI

Duomenų klasėje gali būti naudojami:

  • val (tik skaitymo savybė): Savybė yra inicijuojama kuriant objektą ir vėliau negali būti keičiama. Ji yra automatiškai generuojamų metodų (equals(), hashCode(), toString(), copy()) dalis.
  • var (keičiamoji savybė): Savybė gali būti pakeista po objekto sukūrimo. Taip pat ji yra generuojamų metodų dalis.
  • Savybės, deklaruotos klasės kūne: Šios savybės nėra pagrindinių duomenų klasės savybių dalis ir nedalyvauja standartinių metodų generavime.

Pavyzdys:

data class User(
    val id: Int, // tik skaitymui, pagrindinių savybių dalis
    var name: String, // keičiamoji, pagrindinių savybių dalis
    val creationTime: Long = System.currentTimeMillis() // tik skaitymui, su numatytąja verte, pagrindinių savybių dalis
) {
    val isAdmin: Boolean = false // tik skaitymui, nėra pagrindinių savybių dalis, neįtraukiama į `equals()`/`hashCode()`/`toString()`
}