Zašto se koriste konstruktori u klasi podataka i da li je moguće bez njih?
sobes.tech АИ
Одговор од АИ
U data class konstruktor se koristi za inicijalizaciju njegovih svojstava prilikom kreiranja objekta. On se automatski generiše od strane kompajlera na osnovu svojstava navedenih u glavnom konstruktoru unutar zagrada nakon imena klase.
Može i treba izbegavati izričitu definiciju konstruktora, jer ga sam kompajler automatski kreira:
- Glavni konstruktor
(val/var svojstvo1: Tip1, val/var svojstvo2: Tip2, ...) - Metode
equals(),hashCode(),toString() - Metodu
copy() - Metode
componentN()za destrukturiranje
Primer:
// Klasa podataka sa automatski generisanim konstruktorom
data class User(val name: String, val age: Int)
// Kreiranje objekta
val user = User("Alice", 30)
Nije potrebno ručno pisati konstruktor, osim ako nije potreban sekundarni konstruktor sa drugom logikom inicijalizacije ili podrazumevanim svojstvima, što je retko u data class, jer je njen glavni cilj jednostavno čuvanje podataka. Čak i podrazumevane osobine mogu biti navedene u glavnom konstruktoru:
// Data klasa sa podrazumevanom osobinom
data class Product(val id: Int, val name: String, val price: Double = 0.0)
Tako konstruktor u data class uvek postoji, ali njegova definicija u većini slučajeva je preuzeta od strane kompajlera.