解決Map集合使用get方法返回null拋出空指針異常問題
前言
1.Map里面只能存放對象,不能存放基本類型,例如int,需要使用Integer
2.Map集合取出時,如果變量聲明了類型,會先進行拆箱,再進行轉換。
空指針問題

如圖,在程序執(zhí)行到27行時,出現(xiàn)了空指針異常.按道理來講,對于Map集合是有Key和Value的,Collection集合是只有Value。如果執(zhí)行get()方法,當不存在key時,對應的應該返回null。
map.get(s.charAt(i));
因此 由于不存在key“)”,應該返回null
但是卻報了空指針異常。
原因
map.get(s.charAt(i));會先返回數(shù)據(jù)原本類型Character,當數(shù)據(jù)為null時,拆箱轉成null將拋出空指針異常。
以下同理

進行if判斷時,map.get()方法會將取出的Character轉成表達式同類型的變量,由于是null 拆箱成char時將會拋異常。
map.get,小心get出一個空指針
map.get,get出來的可能是個空,拿著個參數(shù)做處理前一定要判斷,或者用getOrDefault
以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
一文詳解Java中的可變對象(Mutable)與不可變對象(Immutable)
如何在 Java 中創(chuàng)建不可變對象?我以前以為所有對象都是不可變的,因為如果你改變一個 String 實例的內容,它總是會創(chuàng)建一個新的 String 對象并指向該對象,在本文中,我不僅將分享在 Java 中Immutable的步驟,還將討論可變對象與不可變對象及其優(yōu)缺點2023-11-11

