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
Je m'attendais à ce qu'on ne puisse pas écrire/utiliser menv.size() puisque Map est censé être une interface.
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)); }
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.
Partager