Bonjour à tous.
Hier en consultant la javadoc sur la classe system je me suis aperçu que la méthode static getenv() me renvoyait un objet de type Map<String,String>

Or première chose qui me surprend: Map dans la javadoc ce n'est pas une classe mais une interface ...

J'ai donc voulu pousser l'investigation un peu plus loin et j'ai écrit ce petit bout de code
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
		Map<String,String> menv = System.getenv();
		System.out.println(menv.size());
		Iterator varEnv = menv.keySet().iterator();
		while(varEnv.hasNext()) {
			String nomVar = (String)varEnv.next();
			System.out.println("Variable: "+nomVar+" ; Contenu : "+menv.get(nomVar));
		}
Je m'attendais à ce qu'on ne puisse pas écrire/utiliser menv.size() puisque Map est censé être une interface.
Mais apparemment si!
Ce qui m'étonne tout de même c'est qu'on m'a toujours dit que les interfaces étaient en quelquesorte des squelettes et que les classes sont censés implémenter ces méthodes squelettes.
M'aurait on menti ? ;-)
Il y a certainement un truc qui m'échappe mais je ne vois pas lequel.
Si quelqu'un à une explication je suis preneuse.