Sobes.tech
Junior

Quali variabili possono essere utilizzate in una classe di dati (data class)?

sobes.tech AI

Risposta dell'AI

In una data class possono essere utilizzati:

  • val (proprietà di sola lettura): La proprietà viene inizializzata alla creazione dell'oggetto e non può essere modificata successivamente. Fa parte dei metodi generati automaticamente (equals(), hashCode(), toString(), copy).
  • var (proprietà mutabile): La proprietà può essere modificata dopo la creazione dell'oggetto. Fa anch'essa parte dei metodi generati.
  • Proprietà dichiarate nel corpo della classe: Queste proprietà non fanno parte delle proprietà principali della data class e non partecipano alla generazione dei metodi standard.

Esempio:

data class User(
    val id: Int, // solo lettura, parte delle proprietà principali
    var name: String, // mutabile, parte delle proprietà principali
    val creationTime: Long = System.currentTimeMillis() // solo lettura, con valore di default, parte delle proprietà principali
) {
    val isAdmin: Boolean = false // solo lettura, non parte delle proprietà principali, non viene inclusa in equals/hashCode/toString
}