我的Java應用程序顯示一些奇怪的行爲,並且在找到解決方案時遇到問題。爲什麼Java在讀取LinkedHashMap時自動從字符串轉換爲整數
此代碼片段獲取LinkedHashMap
的內容,其中的鍵和值都是String
類型,並將它們寫入文本文件。 configWriter
類型爲PrintWriter
。
for (Map.Entry<String, String> entry : configMap.entireSet()) {
configWriter.println(entry.getKey() + "=" + entry.getValue());
}
地圖被宣佈:
LinkedHashMap<String, String> configMap = new LinkedHashMap<String, String>();
它是通過使用Scanner
類從一個文本文件中讀取的標記填充。
一個在地圖中值是String
只包含數字(整數),但是當循環到達此值時,它拋出一個ClassCastException
說,你可以不投從Integer
到String
。這非常合理,但值的類型是String。
有沒有辦法強制Java將這個值保持爲String
?
你可以顯示'configMap'的聲明嗎?這聽起來像是在某處使用了rawtypes,而map並不包含所有的'String's。 –
另外,堆棧跟蹤可能會有所幫助。 –
編輯問題,請勿將信息添加爲評論。 –