我试图编译下面的代码:如何在Java中使用foreach循环来循环访问HashMap中的值?
private String dataToString(){
Map data = (HashMap<MyClass.Key, String>) getData();
String toString = "";
for(MyClass.Key key: data.keySet()){
toString += key.toString() + ": " + data.get(key);
return toString;
}
我得到一个错误的线路,说:
incompatible types found : java.lang.Object required: MyClass.Key
的getData()
方法返回一个Object
(但在这种情况下,Object
返回具有HashMap
结构)。 MyClass.Key
是我为我的应用程序创建的枚举(在另一个类文件 - MyClass
中)。
当我在MyClass.java
中创建了一个具有相同结构的foreach循环时,我没有遇到这个问题。
我在做什么错?
当您要将它分配给Map时,不需要将getData()转换为HashMap。而是投它一个地图。如果getData()返回一个非HashMap(如TreeMap)呢? – 2009-01-15 19:57:22
我其实在这里省略了一些信息... getData()实际上是getData(String key),其中key指定了我希望获得的所需对象。所以,因为我知道我得到的对象,所以我确切知道我应该如何处理它。 – troyal 2009-01-15 20:00:04