解決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。

推薦閱讀: