Bonjour Messieurs,
J’ai un problème sur un programme java que je développe, en effet je chercher à faire une
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
Map<String, Map<String, List<Objet>>> root = new HashMap<String, Map<String,List<Objet>>>();
J’ai une classe qui contient cette map :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
	public class KeyReference {
	String keylabel;
	Map<String, Map<String, List< Objet >>> root = new HashMap<String, Map<String,List<Objet>>>();
avec les getters et setters qui vont bien

Et j’ai une method pour allez remplir cette map si cette Map contient déjà la clé alors on renvoie la list.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
	public List<Objet> getrootByvalueAndLang(String value,String lang){
		if(!root.containsKey(value)){
			root.put(value, new HashMap<String, List<Objet>>());
			root.get(value).put(lang, new ArrayList<Objet>());
			return root.get(value).get(lang);
		}
		return root.get(value).get(lang);
	}
Le problème est quand j’appelle cette méthode :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
	List<Objet> listobjet= keyReference.getrootByvalueAndLang(value, lang);
	listobjet.add(objet);
Sur la dernière ligne listobjet.add(objet); java.lang.NullPointerExceptionJe comprends pas trop pourquoi en faite car mon objet n’est pas null alors ca doit venir de ma méthode Mais quand je fais une map a seulement 2 dimension ca marche alors pourquoi quand je rajoute une liste dedans ca ne marche pas ???

Pour mon code à 2 dimensions ca donne ca :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
Public Map<String , Map<String, String>> root = new HashMap<String, Map<String,String >>();
 
public Map<String, String> getrootbyKey(String key){
	if(!root.containsKey(key)){
		root.put(key, new HashMap<String, String>());
		return root.get(key);
	}
	return root.get(key);
}
La je n’ai pas de NullPointerExeception je comprends plus trop … Si quelqu’un connais le problème ?

Encore merci pour vos réponses.