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)