Bonjour,
j'ai une classe qui contient des méthodes "static" et dans cette classe, j'ai des attributs private static final :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
private final static List listeCriticite = Utils.loadListLVB("T_Criticite",
			"t_criticite");
La classe est utilisée car elle charge en mémoire les données d'une base de données pour éviter de faire à chaque fois des requêtes vers la base.
J'ai une méthode qui récupère ces listes :
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
21
22
public static List getListFromRow(String row) {
		List maListe = new ArrayList();

		if (row.equals("criticite")) {
			maListe = Utils.listeCriticite;
		} else if (row.equals("orig_dem")) {
			maListe = Utils.listeOrigDem;
		} else if (row.equals("intervenant")) {
			maListe = Utils.listeIntervenant;
		} else if (row.equals("application")) {
			maListe = Utils.listeApplication;
		} else if (row.equals("etat")) {
			maListe = Utils.listeEtat;
		} else if (row.equals("tache")) {
			maListe = Utils.listeTache;
		} else if (row.equals("type_peri")) {
			maListe = Utils.listeTypePeri;
		} else if (row.equals("type_dem")) {
			maListe = Utils.listetypeDem;
		}
		return maListe;
	}
J'appele ma méthode comme suit :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
LabelValueBean lvb = new LabelValueBean("TOUS/TOUTES", "TOUS/TOUTES");
listeAppli = Utils.getListFromRow("application");
		listeAppli.add(0, lvb);
Dans l'exemple si dans la liste j'ai initialment A, B et C après cet appel, j'ai TOUS/TOUTES, A B et C.
Je ne sais pas si je me suis bien exprimé mais mon problème, pour résumer, est que la liste qui est en private final static est modifiée en dehors de la classe.
Pourquoi ?