Bonjour,
Je souhaite utiliser une classe 'Cost' contenant une HashMap<Object, Integer>.
Cette HashMap pourra être de type <String, Integer> ou <MultiKey, Integer>.
Voici une version simplifiée de la classe correspondante :
Dans le cas où la HashMap est de type <MultiKey, Integer>, je souhaiterais spécialiser la méthode add de la manière suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import java.util.HashMap; import java.util.Iterator; public class Cost<Item> { public HashMap<Item, Integer> costs; public Cost(){ costs = new HashMap<Item, Integer>(); } public int get(Object o){ if(costs.get(o) != null) return costs.get(o); else return 1; } public void add(Item o, int val){ costs.put(o, val); } }
Ceci me donne une erreur puisque la fonction put est défini pour des arguments de type (Item, Integer) et non (MultiKey, Integer).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 public void add(String s1, String s2, int val){ costs.put(new MultiKey(s1, s2), val); costs.put(new MultiKey(s2, s1), val); }
Comment puis-je spécifier que cette méthode add est à utiliser dans le cas où Item est de type MultiKey ?
Merci d'avance !
Partager