WeakHashMap : Eviter le NullPointerException
Bonjour,
J'utilise une WeakHashMap pour stocker mes items de liste JList, et il arrive, à de rares occasions, de me retrouver devant un NullPointerException, que j'aimerais éviter.
Voici le code incriminé (la classe est un ListCellRenderer) :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| private WeakHashMap<Integer, Item> renderer = new WeakHashMap<Integer, Item>();
...
public Component getListCellRendererComponent(JList list, Object value, int index, boolean selected, boolean cellHasFocus) {
...
if (value instanceof Employee) {
if (renderer.get(index)==null) {
renderer.put(index), new Item((Employee)value, false, selected));
}
Item item = renderer.get(index);
// Le NullPointerException a lieu à la ligne suivante :
item.setEmployee((Employee)value);
...
return item;
}
...
} |
Pour moi le WeakHashMap a déréférencé un élément au mauvais moment. Lorsque j'actualise ma liste, je vide bien sûr ma variable renderer, mais je ne pense pas qu'il s'agisse d'un problème de synchronisation à ce niveau.
Qu'en pensez-vous ? Je ne vois pas comment protéger ma liste à ce niveau.
En vous remerciant.