¿Cómo clonar un objeto en Kotlin? Problema con la mutabilidad y las referencias
¡Hola a todos! Acabo de empezar a aprender Kotlin y me encontré con un problema al clonar objetos. En Java usaba el método `clone()` de la interfaz `Cloneable`, pero en Kotlin parece que todo funciona de manera diferente.
Tengo una clase de datos simple `User`:
```kotlin
data class User(val name: String, var age: Int, val hobbies: MutableList)
```
Creo un objeto y quiero hacer una copia completa, para que los cambios en la copia no afecten al original. Pero cuando simplemente asigno un objeto a otro, esto crea una nueva referencia, no una copia:
```kotlin
val user1 = User("Alice", 25, mutableListOf("reading", "swimming"))
val user2 = user1 // ¡Esto no es una copia, sino una referencia!
user2.age = 30
println(user1.age) // Imprime 30, ¡pero debería ser 25! Los cambios afectaron al original.
```
Intenté usar `copy()` para la data class, pero esto solo funciona para campos primitivos. Cuando cambio la lista `hobbies` en la copia, los cambios aún se reflejan en el original:
```kotlin
val user3 = user1.copy(age = 35)
user3.hobbies.add("codi
No answers yet.
Inicia sesión para dejar una respuesta