最近在開發中碰到了一個問題,其實就是一個很簡單的類型轉換異常,最開始看到報錯信息就很興奮,其實就是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時報錯。
這個問題我到現在還沒有想明白,希望集結大家的力量,有人能夠給出一個滿意的解釋。