奇怪的Map異常

                 最近在開發中碰到了一個問題,其實就是一個很簡單的類型轉換異常,最開始看到報錯信息就很興奮,其實就是ClassCastException: Integer can not be cast to String,本來以爲馬上就能夠解決的,可是在看代碼看了半天之後,發現自己卻不明所以,雖然最後解決了bug,但是還是沒有弄懂是什麼原因,在此希望有大神能夠給予解答。

                大概的代碼就是下面這樣子的

Map<String,String> map=new HashMap<>();
Map map1=new HashMap();
map1.put("34",22);
map.putAll(map1);
System.out.println(map);
System.out.println(map.get("34"));

               大家可以試着運行一下這段代碼;發現最後就會報錯,

Exception in thread "main" java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.String

              可以看到在putAll時並沒有報錯,而是在get時報錯。

              這個問題我到現在還沒有想明白,希望集結大家的力量,有人能夠給出一個滿意的解釋。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章