0

ハッシュマップ (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です!

4

1 に答える 1

4

イテレータはMap.Entryオブジェクトをウォークスルーするので、最初にそれらをそれらのタイプとして抽出します。

Person p = (Person)((Map.Entry)it.next()).getValue();
于 2012-08-18T12:34:38.633 に答える