У меня есть некоторый относительно простой код, который я сделал: , предназначенный для извлечения итератора в HashMap и распечатки значений пары ключей .
Моя проблема в том, что когда я иду, чтобы получить итератор, я получаю это исключение.
Исключение в потоке "main" java.lang.ClassCastException: java.util.HashMap $ Запись не может быть приведена к java.lang.String
на Delete.main (Delete.java:25)
Вот мой код, и я указываю, где находится строка 25:
Map <String, UpdatablePage> contentMap = new HashMap <String, UpdatablePage>();
contentMap.put( "test", new UpdatablePage() );
for ( Iterator it = (Iterator) contentMap.entrySet().iterator(); it.hasNext(); )
{
String key = (String) it.next(); // LINE 25
UpdatablePage value = contentMap.get(key);
System.out.print( "Key=" + key + ", Value=" + value.toString() );
}
PS, я пытался перебрать карту, используя Map.Entry, но когда я собираюсь привести значение, возвращаемое итератором, к Map.Entry, я получаю еще одно исключение, почему?
// Error occurs when I do the following
Map.Entry pair = (Map.Entry) it.next();