我是Java的新手,但對編程並不陌生,所以作爲我的第一個項目,我決定在工作中爲某人創建一個.txt-.csv分析器。我讀取.txt文件中的每一行,並將其分隔爲單獨的地圖中的部分,子部分,子部分以及子部分的內容。然後將每個地圖分配到它上面的地圖(更多在下面)。我打印一切就好了,但是當我嘗試閱讀它時,出現以下錯誤:"java.lang.String cannot be cast to java.util.Map"
。該錯誤僅在代碼運行後出現,而不是在編譯時出現,也不出現在NetBeans IDE中。java.lang.String不能轉換爲java.util.Map
我的地圖是在下面的表格與每個對象是在它下面的地圖:(爲什麼不是Java使這個容易-_-關聯數組都是我想要的)
(Map)array=<string,Object>
(Map)subarray=<String,Object>
(Map)subsubarray=<String,Object>
(Map)subsubcontents=<String,String>
未必是最有效的方法來閱讀這個,計劃將其轉換爲遞歸函數,但這裏是我的代碼,從我的項目複製粘貼。我在我發現錯誤的地方發表評論。
public static Map<String,Object> array=new HashMap<String,Object>();
/* Code for populating the following Maps and pushing them into array
<String,Object>subarray
<String,Object>subsubarray
<String,String>subsubcontents
*/
Set section=array.entrySet();
Iterator sectionI=section.iterator();
while(sectionI.hasNext()) {
Map.Entry sectionInfo=(Map.Entry)sectionI.next();
Map<String,Object> subMap=(Map)sectionInfo.getValue();
Set subSet=subMap.entrySet();
Iterator subI=subSet.iterator();
while(subI.hasNext()) {
Map.Entry subInfo=(Map.Entry)subI.next();
Map<String,Object> subsubMap=(Map)subInfo.getValue();
Set subsubSet=subsubMap.entrySet();
Iterator subsubI=subsubSet.iterator();
while(subsubI.hasNext()) {
System.out.println("test");
Map.Entry subsubInfo=(Map.Entry)subsubI.next();
Map<String,Object> subcontentsMap=(Map)subsubInfo.getValue();
/*
The above line seems to be causing the issues.
If you comment out the rest of this loop (below this comment)
the error will still appear. If you comment out the rest of this loop
(including the line above this comment) it disappears.
Power of deduction my dear Watson.
*/
Set subcontentsSet=subcontentsMap.entrySet();
Iterator keys=subcontentsSet.iterator();
while(keys.hasNext()) {
Map.Entry keyMap=(Map.Entry)keys.next();
}
Iterator values=subcontentsSet.iterator();
while(values.hasNext()) {
Map.Entry valueMap=(Map.Entry)values.next();
}
}
}
}
任何幫助將不勝感激。現在我已經掙扎了好幾天了。
你可以發佈整個堆棧跟蹤嗎? –
getStackTrace()返回[Ljava.langStackTraceElement; @ c0a150 – mseancole