解決Map集合使用get方法返回null拋出空指針異常問題
前言
1.Map裡面隻能存放對象,不能存放基本類型,例如int,需要使用Integer
2.Map集合取出時,如果變量聲明瞭類型,會先進行拆箱,再進行轉換。
空指針問題
如圖,在程序執行到27行時,出現瞭空指針異常.按道理來講,對於Map集合是有Key和Value的,Collection集合是隻有Value。如果執行get()方法,當不存在key時,對應的應該返回null。
map.get(s.charAt(i));
因此 由於不存在key“)”,應該返回null
但是卻報瞭空指針異常。
原因
map.get(s.charAt(i));
會先返回數據原本類型Character,當數據為null時,拆箱轉成null將拋出空指針異常。
以下同理
進行if判斷時,map.get()方法會將取出的Character轉成表達式同類型的變量,由於是null 拆箱成char時將會拋異常。
map.get,小心get出一個空指針
map.get,get出來的可能是個空,拿著個參數做處理前一定要判斷,或者用getOrDefault
以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。
推薦閱讀:
- Java利用Map實現計算文本中字符個數
- Go Java算法之字符串中第一個唯一字符詳解
- Java實現統計字符串出現的次數
- Java那點兒事之Map集合不為人知的秘密有哪些
- 關於Integer.parseInt()方法的使用