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
}