2010-03-19 6 views
0

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

Répondre

1

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)

0

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.