Comment cloner un objet en Kotlin ? Problème de mutabilité et de références
Bonjour à tous ! Je viens de commencer à apprendre Kotlin et j'ai rencontré un problème lors du clonage d'objets. En Java, j'utilisais la méthode `clone()` de l'interface `Cloneable`, mais en Kotlin, tout semble fonctionner différemment.
J'ai une simple classe de données `User` :
```kotlin
data class User(val name: String, var age: Int, val hobbies: MutableList)
```
Je crée un objet et je veux en faire une copie complète, afin que les modifications apportées à la copie n'affectent pas l'original. Mais lorsque j'assigne simplement un objet à un autre, cela crée une nouvelle référence, pas une copie :
```kotlin
val user1 = User("Alice", 25, mutableListOf("reading", "swimming"))
val user2 = user1 // Ce n'est pas une copie, mais une référence !
user2.age = 30
println(user1.age) // Affiche 30, mais devrait être 25 ! Les modifications ont affecté l'original.
```
J'ai essayé d'utiliser `copy()`
No answers yet.
Connectez-vous pour laisser une réponse