Junior — Middle
Ce caracteristici și limitări există în clasele de date din Kotlin?
sobes.tech AI
Răspuns de la AI
Clasele de date (data class) în Kotlin sunt destinate stocării datelor și oferă automat metode utile: equals(), hashCode(), toString(), copy() și funcții de destrukturare.
Caracteristici și limitări:
- Clasa trebuie să aibă cel puțin un parametru în constructor.
- Toți parametrii constructorului, declarați în
primary constructor, devin automat proprietăți. - Clasa nu poate fi abstractă, deschisă, internă sau să moștenească din alte clase (dar poate implementa interfețe).
- Compilatorul generează metode doar pentru proprietățile declarate în constructor, nu pentru proprietăți suplimentare.
- Se pot suprascrie metodele generate dacă se dorește schimbarea comportamentului.
Exemplu:
data class User(val name: String, val age: Int)
val user1 = User("Alice", 30)
val user2 = user1.copy(age = 31) // va crea un nou obiect cu vârsta modificată
println(user1) // User(name=Alice, age=30)