预泛化,从hashmap转换对象?

时间:2012-08-18 12:28:57

标签: java iterator

如何遍历散列映射(包含Person类型的对象)并在Person对象上调用方法?

我用过:

for(Iterator it = hashmap.entrySet().iterator(); is.hasNext();){
    Person p = (Person)it.next();
    p.doSomething();
}

但是当正在执行Person转换时,它表示该对象不能转换为Person对象(但它绝对是Person的子类型)。

  

java.util.HashMap $ Entry无法强制转换为Person。

编辑这是1.4!

1 个答案:

答案 0 :(得分:4)

当您的迭代器将遍历Map.Entry个对象时,首先将它们作为这些类型提取出来:

Person p = (Person)((Map.Entry)it.next()).getValue();