Alors, comme je l'ai dis plus haut mon code ressemble à ca :
Code :
- class C{ ...
- private Classe1 classe1;
- private Attribut1 attribut1;
- private Vector liste;
- public Object clone(){
- Copie c= (Copie) super.clone();
- c.attribut1 = (Attribut1) attribut1.clone(); // On recopie une classe
- c.classe1 = (Class1) classe1.clone(); // On recopie une classe
- ...
- c.liste = (Vector) liste.clone(); // <<< Problème ici vraisemblablement
- ...
- return c;
- }
- ...}
|
Ensuite je fais C maclasse1 = new C(); puis C maclasse2 = maclasse1.clone();
Or ensuite lorsque je regarde les reférences des objets clonés :
Les objets maclasse2, maclasse2.attributs1 et maclasse2.classe1 ont des références différentes de l'objet de départ
Et maclasse2.liste garde la même référence que maclasse1.liste ...
J'ai essayé d'être plus clair...
Message édité par rital_5_4 le 19-04-2005 à 21:45:46