Sobes.tech
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)