解決Map集合使用get方法返回null拋出空指針異常問題
前言
1.Map里面只能存放對象,不能存放基本類型,例如int,需要使用Integer
2.Map集合取出時,如果變量聲明了類型,會先進行拆箱,再進行轉(zhuǎn)換。
空指針問題
如圖,在程序執(zhí)行到27行時,出現(xiàn)了空指針異常.按道理來講,對于Map集合是有Key和Value的,Collection集合是只有Value。如果執(zhí)行g(shù)et()方法,當不存在key時,對應(yīng)的應(yīng)該返回null。
map.get(s.charAt(i));
因此 由于不存在key“)”,應(yīng)該返回null
但是卻報了空指針異常。
原因
map.get(s.charAt(i));
會先返回數(shù)據(jù)原本類型Character,當數(shù)據(jù)為null時,拆箱轉(zhuǎn)成null將拋出空指針異常。
以下同理
進行if判斷時,map.get()方法會將取出的Character轉(zhuǎn)成表達式同類型的變量,由于是null 拆箱成char時將會拋異常。
map.get,小心get出一個空指針
map.get,get出來的可能是個空,拿著個參數(shù)做處理前一定要判斷,或者用getOrDefault
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
SpringBoot實現(xiàn)熱部署Community的示例代碼
本文主要介紹了SpringBoot實現(xiàn)熱部署Community的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-06-06java的Array,List和byte[],String相互轉(zhuǎn)換的方法你了解嘛
這篇文章主要為大家詳細介紹了java的Array,List和byte[],String相互轉(zhuǎn)換的方法,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助2022-02-02Quartz實現(xiàn)JAVA定時任務(wù)的動態(tài)配置的方法
這篇文章主要介紹了Quartz實現(xiàn)JAVA定時任務(wù)的動態(tài)配置的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-07-07從零構(gòu)建可視化jar包部署平臺JarManage教程
這篇文章主要為大家介紹了從零構(gòu)建可視化jar包部署平臺JarManage教程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-05-05java編程FinalReference與Finalizer原理示例詳解
這篇文章主要為大家介紹了java編程FinalReference與Finalizer的核心原理以及示例源碼的分析詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助2022-01-01