Mon probleme:
ma méthode containsKey de Hashtable me retourne true. (ce qui me permet de conclure que la clé existe bien dans ma table)
quand j'appel la méthode get elle me retourne une value null !!!! comme si elle n'a pas retrouvée ma clé avec la méthode get.
C'est peut être un problème avec mon hashCode.
Voila mes sources:
Voila ma class Key
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 if(!hashtable.containsKey(key)){ Value value = new Value(1); hashtable.put(key,value); }else{ Value value = hashtable.get(key); //ici value == null !!!!!!!!!!!!!! hashtable.put(key,value); }
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
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37 public class Key{ String className; String methodNameDesc; int section; public Key(String className, String methodNameDesc, int section) { this.className = className; this.methodNameDesc = methodNameDesc; this.section = section; } public boolean equals(Object o){ if(o == null){ return false; } Key k = (Key)o; if(k.getClassName().equals(this.className) && k.getMethodNameDesc().equals(this.methodNameDesc) && k.getSection()==this.section){ return true; } return false; } public int hashCode(){ int result=0; for(int i=0;i<className.length();i++){ result += Integer.valueOf(className.charAt(i)); } for(int i=0;i<methodNameDesc.length();i++){ result += Integer.valueOf(methodNameDesc.charAt(i)); } result += section; return result; }
Partager