Sobes.tech
Junior

Koje promenljive mogu biti korišćene u klasi podataka (data class)?

sobes.tech АИ

Одговор од АИ

U data class mogu se koristiti:

  • val (svojstvo samo za čitanje): Svojstvo se inicijalizuje prilikom kreiranja objekta i ne može biti promenjeno naknadno. To je deo automatski generisanih metoda (equals(), hashCode(), toString(), copy).
  • var (promenljivo svojstvo): Svojstvo može biti promenjeno nakon kreiranja objekta. Takođe je deo generisanih metoda.
  • Svojstva deklarisana u telu klase: Ova svojstva nisu deo glavnih svojstava data klase i ne učestvuju u generisanju standardnih metoda.

Primer:

data class User(
    val id: Int, // samo za čitanje, deo glavnih svojstava
    var name: String, // promenljivo, deo glavnih svojstava
    val creationTime: Long = System.currentTimeMillis() // samo za čitanje, sa podrazumevanom vrednošću, deo glavnih svojstava
) {
    val isAdmin: Boolean = false // samo za čitanje, nije deo glavnih svojstava, ne uključuje se u equals/hashCode/toString
}