почему я получаю это исключение?
Map myHash = null myHash = (HashMap) Collections.synchronizedMap (новый HashMap ());
Если я пытаюсь использовать эту хэш-карту, я получаю java.lang.ClassCastException
Поскольку Collections.synchronizedMap () не возвращает HashMap.
Правильный путь должен быть:
Map mySyncedMap = Collections.synchronizedMap (new HashMap ());
(или любая другая карта вместо HashMap)
Потому что Collections.synchronizedMap не возвращает HashMap.
Collections.synchronizedMap
HashMap
Возвращает какой-то другой тип Map (тип, который вам не нужно знать), который окутывает ваше HashMap.
Map
Вы должны использовать интерфейс Map вместо HashMap.