迭代时在HashMap上抛出奇怪的异常

时间:2011-02-21 04:06:59

标签: java import iterator hashmap

我遇到了一个我创建的HashMap的问题。当我去检索&来自hashmap的迭代器,所以我可以迭代它,我得到一个异常抛出&我无法理解这个例外意味着什么?我如何解决我的错误。

例外是:

  

引起:java.lang.ClassCastException:java.util.HashMap $ KeyIterator无法强制转换为javassist.bytecode.Descriptor $ Iterator
      在ContentTree.populateTree(ContentTree.java:39)

为什么抛出此异常,我的HashMap有问题?

我的代码是:

public void populateTree( Map <String, UpdatablePage> conMap )
{
    content.removeAllChildren();

    for ( Iterator it = (Iterator) conMap.keySet().iterator(); it.hasNext(); ) // LINE 39
    {
        Object pageKey = it.next();

2 个答案:

答案 0 :(得分:2)

您是否导入了错误的Iterator类?也许是javassist.bytecode.Descriptor.Iterator?同样,你应该使用我在前一个帖子中提到的泛型迭代器。从运行时获取错误并处理它并在编译时修复它。

答案 1 :(得分:0)

请改为尝试:

for ( java.util.Iterator it = (java.util.Iterator) conMap.keySet().iterator(); it.hasNext(); )