Sobes.tech
Junior

Kam paredzēti būvētāji datu klasē un vai ir iespējams bez tiem iztikt?

sobes.tech AI

Atbilde no AI

Datu klases konstruktoru tiek izmantots, lai tās īpašības inicializētu, izveidojot objektu. Tas tiek automātiski ģenerēts no kompilatora, pamatojoties uz galvenā konstruktorā norādītajām īpašībām, kas ir iekļautas iekavās pēc klases nosaukuma.

Ir ieteicams un nepieciešams izvairīties no tiešas konstruktoru definīcijas, jo kompilators pats to izveido:

  • Galveno konstruktoru (val/var īpašība1: Tips1, val/var īpašība2: Tips2, ...)
  • Metodes equals(), hashCode(), toString()
  • copy() metodi
  • componentN() metodes destrukturizācijai

Piemērs:

// Automātiski ģenerēts konstruktoru ar datu klasi
data class User(val name: String, val age: Int)

// Objekta izveide
val user = User("Alice", 30)

Nav nepieciešams rakstīt konstruktoru manuāli, izņemot, ja ir nepieciešams sekundārs konstruktor ar citu inicializācijas loģiku vai noklusējuma īpašībām, kas ir reti sastopams data class, jo tās galvenais mērķis ir vienkārši glabāt datus. Pat noklusējuma īpašības var norādīt galvenajā konstruktorā:

// Datu klase ar noklusējuma īpašību
data class Product(val id: Int, val name: String, val price: Double = 0.0)

Tādējādi, konstruktoram data class vienmēr ir, bet tā definīcija lielākajā daļā gadījumu tiek pārņemta no kompilatora.