Bonjour,
je rencontre un problème avec ce code :
Le premier "System.out.println(actions.get(0).getName());" affiche bien "passer" comme espéré, mais suite au deuxième "add()", le second "System.out.println(actions.get(0).getName());" affiche "utiliser consommable" alors que techniquement le premier élément de mon arraylist est toujours le "passer" donc comment se fait-il que mon premier élément est devenu identique au second élément ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 ArrayList<Action> actions = new ArrayList(); actions.add(new Action("PASSER", "1", "select1", "null", "null", "null", 0, new ArrayList<Integer>())); System.out.println(actions.get(0).getName()); actions.add(new Action("utiliser consommable", "0", "split", "null", "null", "null", 0, new ArrayList<Integer>())); System.out.println(actions.get(0).getName());
Voici mon constructeur de l'objet Action :
Je ne comprends absolument pas ce qu'il se passe...
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 public Action(String newname, String newtargettype, String newLocationtype, String newmanoeuver, String newattacktype, String newdamagetype, int newduration, ArrayList<Integer> newmodificators) { setName(newname); setTargettype(newtargettype); setLocationtype(newLocationtype); setManeuvertype(newmanoeuver); if (getManeuvertype().substring(0, 3).equals("sele")) { int newstrokesnumber = Integer.valueOf(getManeuvertype().substring(6)).intValue(); setStrokesnumber(newstrokesnumber); } else if (getManeuvertype().substring(0, 3).equals("rand")) { int newstrokesnumber = Integer.valueOf(getManeuvertype().substring(6)).intValue(); setStrokesnumber(newstrokesnumber); } else if (getManeuvertype().substring(0, 3).equals("null")) { setStrokesnumber(0); } setAttacktype(newattacktype); setDamagetype(newdamagetype); setDuration(newduration); setModificators(newmodificators); }
Partager