我試圖編譯下面的代碼:如何在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