Bonjour,

J'ai un souci avec pour obtenir/afficher des objets de meme type et qui ont des valeurs differentes.
Pour etre bref, j'ai simplifie le code.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
public class Reel {
	private static float nbReel;
	public Reel() {}
	public Reel(float unNbReel) {
		nbReel = unNbReel;
	}
	public static void setNbReel(float unNbReel) {
		nbReel = unNbReel;
	}
	public static float getNbReel() {
		return nbReel;
	}
}
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
 
import java.io.*;
import java.util.*;
public class TestClassMain {
	public static void main(String[] args) {		
		Reel monReel = null;
		ArrayList maListe = new ArrayList();
		maListe.add(new Reel(7));
		maListe.add(new Reel(9));
		monReel = (Reel) maListe.get(0);
		System.out.println(monReel.getNbReel());
		monReel = (Reel) maListe.get(1);
		System.out.println(monReel.getNbReel());
	}
}
A la sortie, j'obtiens : 9.0 et 9.0
Alors que je suis cense obtenir : 7.0 et 9.0

Pourquoi ? Je ne comprends pas !
Il prend que la derniere valeur... Y a-t-il une histoire de reference !? Je pense pas mais bon...

Notez que :
- si vous mettez des String differents, a la sortie, on a ce qu'on veut !
- si vous mettez UN objet d'un autre type en plus, le programme l'affichera avec la valeur desiree !

Bref, pour faire court, le programme affiche que la derniere valeur d'un type d'objet a chaque fois qu'il trouve l'objet d'un meme type dans le tableau d'ArrayList.

Merci d'avance pour vos aides,
Bye,