Bonjour,
je rencontre un problème avec ce code :

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());
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 ?

Voici mon constructeur de l'objet Action :

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);
	}
Je ne comprends absolument pas ce qu'il se passe...