Copier un objet ET NON SA REFERENCE dans une variable
cs_darkstorm
Messages postés44Date d'inscriptiondimanche 3 février 2002StatutMembreDernière intervention22 mai 2006
-
13 avril 2004 à 17:21
cs_GodConan
Messages postés2113Date d'inscriptionsamedi 8 novembre 2003StatutContributeurDernière intervention 6 octobre 2012
-
13 avril 2004 à 20:36
je copie la référence de objet (son adresse mémoire) dans la variable copie, donc si je modifie copie, objet est aussi modifié puisque c'est 2 fois le même objet. Ceci ne me convient pas, comment puis-je faire pour copier VRAIMENT l'objet, c'est à dire que j'aie 2 copies à des emplacements mémoire indépendants.
kirua12
Messages postés1155Date d'inscriptionsamedi 17 janvier 2004StatutMembreDernière intervention29 avril 20117 13 avril 2004 à 18:30
Salut,
la méthode clone() est faite pour toi mais elle ne fait pas une copie profonde de l'objet, c'est à dire que les objets contenus dans ta 1ère liste seront les mêmes que dans ta 2nde liste. Tes 2 listes sont indépendantes mais elles ont les mêmes références sur les objets.
cs_GodConan
Messages postés2113Date d'inscriptionsamedi 8 novembre 2003StatutContributeurDernière intervention 6 octobre 201212 13 avril 2004 à 19:04
GodConan :clown)
vi c bien dommage que la methode clone de la list n apelle pas elle aussi les methode clones de c element pour referencer les clone ;-( il se contente de faire un arraycopy ;-(
donc ta 2 soluce je pense ;o) soit tu parcours toute ta liste pour faire les clone de chac element ;-( soit tu surcharge ma methode ArrayList ;o) pour en revenir a la 1ere soluce ;o)héhé ...
cs_GodConan
Messages postés2113Date d'inscriptionsamedi 8 novembre 2003StatutContributeurDernière intervention 6 octobre 201212 13 avril 2004 à 20:36
GodConan :clown)
ben t objet a toi ta K redefinir proprement la methode clone
comme sa taura a parcourir que une foi ta liste pour appeler la methode clone de l objet de 1er level... ;o)
jespere g etai clair ;o)
Mais ds tous les cas verifi bien si ta reelment besoin d une copy de l nesemble des donnee ;o) c rarement necessaire... ;o)