Pourquoi cette exception est-elle générée?Exception de diffusion de classe
Carte myHash = null myHash = (HashMap) Collections.synchronizedMap (new HashMap());
Si j'essaie d'utiliser ce hashmap, je reçois java.lang.ClassCastException
Pourquoi cette exception est-elle générée?Exception de diffusion de classe
Carte myHash = null myHash = (HashMap) Collections.synchronizedMap (new HashMap());
Si j'essaie d'utiliser ce hashmap, je reçois java.lang.ClassCastException
Parce que Collections.synchronizedMap() ne renvoie pas HashMap.
Manière correcte devrait être:
Carte mySyncedMap = Collections.synchronizedMap (nouvelle HashMap());
(ou toute autre carte au lieu de HashMap)
Parce que Collections.synchronizedMap
ne retourne pas HashMap
.
Il renvoie un autre type de Map
(dont vous n'avez pas besoin de connaître le type), qui enveloppe votre HashMap
. Vous devez utiliser l'interface Map
au lieu de HashMap
.