cs_mirosa
Messages postés15Date d'inscriptionjeudi 16 avril 2009StatutMembreDernière intervention 6 mai 2012
-
11 janv. 2012 à 12:26
cs_Julien39
Messages postés6414Date d'inscriptionmardi 8 mars 2005StatutModérateurDernière intervention29 juillet 2020
-
13 janv. 2012 à 15:39
bonjour,
j'ai un problème d'utilisation de la méthode clone .
je veux travailler sur une copie d'un vecteur d'attribut " res1 " (res c'est la copie originale ) car je ne veux pas modifie la copie original , mais cela ne marche pas et toujours la copie original a changé .
Code :
// l'interface
public interface cloneable {
Object clone();
}
la méthode clone qui se trouve dans ma classe qui implémente l'interface :
public Object clone() {
Object o = null;
try {
// On récupère l'instance à renvoyer par l'appel de la
// méthode super.clone()
o = super.clone();
} catch(CloneNotSupportedException cnse) {
// Ne devrait jamais arriver car nous implémentons
// l'interface Cloneable
cnse.printStackTrace(System.err);
}
// la copie res1 de res
Vector<Regle> res1=(Vector<Regle>) res.clone();
....
si vous pouvez m'aider pour résoudre ce problème;
merci à tous
je ne sais pas pourquoi la copie original "res" change lors de l'exécution
cs_Julien39
Messages postés6414Date d'inscriptionmardi 8 mars 2005StatutModérateurDernière intervention29 juillet 2020371 11 janv. 2012 à 13:32
Bonjour,
Tu ne fais rien du tout, tu ne fais que réutiliser la méthode clone sur Vector. Je te conseil de recréer un objet Vector et de faire un addAll avec le vecteur d'origine.
De toute facon, la méthode clone pose pas mal de problème dans le cadre de l'héritage par exemple, il vaut mieux l'oublier dans un contexte de poo je pense.