Map集合使用get方法返回null抛出空指针异常问题
生活随笔
收集整理的這篇文章主要介紹了
Map集合使用get方法返回null抛出空指针异常问题
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
Map集合使用get方法空指針異常問題
前言
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時將會拋異常。
總結(jié)
以上是生活随笔為你收集整理的Map集合使用get方法返回null抛出空指针异常问题的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: springboot整合mybatisp
- 下一篇: rust(66)-rust智能指针与类型