Bonjour,
j'ai une classe qui contient des méthodes "static" et dans cette classe, j'ai des attributs private static final :
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.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 private final static List listeCriticite = Utils.loadListLVB("T_Criticite", "t_criticite");
J'ai une méthode qui récupère ces listes :
J'appele ma méthode comme suit :
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; }
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.
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);
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 ?
Partager