Bonjour,
j'essaie de cloner un objet mais apparemment je ne le fais pas comme il faut.
Voici mon code:
et j'appel cette méthode comme ceci:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 public class Piece implements Cloneable{ ... 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); } // on renvoie le clone return o; } }
Normalement je devrais avoir deux objets différents mais chez moi pieceUsinee et pieceOld pointent vers le même objet.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Piece pieceUsinee = new Piece(); Piece pieceOld = (Piece) pieceUsinee.clone();
Une modification sur pieceUsinee se répercute sur pieceOld. (Dans le debugger d'eclipse, on peut voir que ces deux variables on le même id)
Qu'est ce que je dois faire pour réparer sa?
Merci pour vos réponses.
Partager