Sobes.tech
Junior

Aké premenné môžu byť použité v triede dát (data class)?

sobes.tech AI

Odpoveď od AI

V data class môžu byť použité:

  • val (len na čítanie vlastnosť): Vlastnosť je inicializovaná pri vytvorení objektu a nemôže byť neskôr zmenená. Je súčasťou automaticky generovaných metód (equals(), hashCode(), toString(), copy).
  • var (meniteľná vlastnosť): Vlastnosť môže byť zmenená po vytvorení objektu. Taktiež je súčasťou generovaných metód.
  • Vlastnosti deklarované v tele triedy: Tieto vlastnosti nie sú súčasťou hlavných vlastností data class a neúčastnia sa generovania štandardných metód.

Príklad:

data class User(
    val id: Int, // len na čítanie, súčasť hlavných vlastností
    var name: String, // meniteľná, súčasť hlavných vlastností
    val creationTime: Long = System.currentTimeMillis() // len na čítanie, s predvolenou hodnotou, súčasť hlavných vlastností
) {
    val isAdmin: Boolean = false // len na čítanie, nie je súčasťou hlavných vlastností, nezahŕňa sa do equals/hashCode/toString
}