Sobes.tech
Junior — Middle

¿Qué características y limitaciones existen en las clases de datos en Kotlin?

sobes.tech AI

Respuesta de la IA

Las clases de datos (data class) en Kotlin están diseñadas para almacenar datos y proporcionan automáticamente métodos útiles: equals(), hashCode(), toString(), copy() y funciones para la destructuración.

Características y limitaciones:

  • La clase debe tener al menos un parámetro en el constructor.
  • Todos los parámetros del constructor, declarados en el primary constructor, se convierten automáticamente en propiedades.
  • La clase no puede ser abstracta, abierta, interna o heredar de otras clases (pero puede implementar interfaces).
  • El compilador genera métodos solo para las propiedades declaradas en el constructor, no para propiedades adicionales.
  • Se pueden sobrescribir los métodos generados si se desea cambiar su comportamiento.

Ejemplo:

data class User(val name: String, val age: Int)

val user1 = User("Alice", 30)
val user2 = user1.copy(age = 31) // creará un nuevo objeto con la edad modificada
println(user1) // User(name=Alice, age=30)