Junior
Na čo sa používajú konštruktory v dátovej triede a je možné sa bez nich zaobísť?
sobes.tech AI
Odpoveď od AI
V data class sa konštruktor se koristi za inicijalizáciu svojstiev pri vytváraní objektu. Automaticky ho generuje prekladač na základe vlastností uvedených v hlavnom konštruktore v zátvorkách za názvom triedy.
Je možné a odporúča sa vyhnúť explicitnej definícii konštruktora, pretože prekladač ho sám vytvára:
- Hlavný konštruktor
(val/var vlastnosť1: Typ1, val/var vlastnosť2: Typ2, ...) - Metódy
equals(),hashCode(),toString() - Metódu
copy() - Metódy
componentN()na destrukturalizáciu
Príklad:
// Dáta trieda s automaticky generovaným konštruktorom
data class User(val name: String, val age: Int)
// Vytvorenie objektu
val user = User("Alice", 30)
Nie je potrebné písať konštruktor ručne, pokiaľ nie je potrebný sekundárny konštruktor s inou logikou inicializácie alebo predvolenými vlastnosťami, čo je v data class zriedkavé, pretože jej hlavný účel je jednoduché ukladanie dát. Aj predvolené vlastnosti môžu byť uvedené v hlavnom konštruktore:
// Dáta trieda s predvolenou vlastnosťou
data class Product(val id: Int, val name: String, val price: Double = 0.0)
Takže, konštruktor v data class vždy existuje, ale jeho definícia je vo väčšine prípadov prevzatá prekladačom.