Bonjour à tous,
Je cherche à connaître le type du champ "Value" d'un TreeMap.
Je m'explique via un exemple :
J'utilise 2 TreeMap :
Dans une méthode d'une autre class, je dois faire la différence entre les 2 TreeMap :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 TreeMap<Integer, String> treeMapString = new TreeMap<Integer, String>(); TreeMap<Integer, Integer> treeMapInteger = new TreeMap<Integer, Integer>();
Bien évidemment le compilateur m'interdit l'écriture
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 public static void whatTypeIsIt(Object o) { System.out.println("What type is it ?"); if(o instanceof TreeMap) { TreeMap treeMap = (TreeMap) o; System.out.println("This is a TreeMap"); if(treeMap instanceof TreeMap<Integer, String>) { System.out.println("This is a TreeMap<Integer, String>"); } else if(treeMap instanceof TreeMap<Integer, Integer>) { System.out.println("This is a TreeMap<Integer, Integer>"); } } }, et autorise
Code : Sélectionner tout - Visualiser dans une fenêtre à part if(treeMap instanceof TreeMap<Integer, String>)Je ne peux donc pas faire la différence entre les 2.
Code : Sélectionner tout - Visualiser dans une fenêtre à part if(treeMap instanceof TreeMap)
Un autre problème, les TreeMap sont suceptibles d'être vide. Il n'est donc pas possible de sélectionner le 1er élément pour lui demander de quel type il est.
J'attend vos propositions.
Yoann
Partager