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()metodicomponentN()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.