【发布时间】:2011-07-01 00:41:39
【问题描述】:
我编写了一些相对简单的代码,用于检索 HashMap 的迭代器并打印出密钥对值。
我的问题是,当我去检索迭代器时,我会抛出这个异常。
线程“main”java.lang.ClassCastException 中的异常:java.util.HashMap$Entry 无法转换为 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();
【问题讨论】: