Map集合使用get方法返回null抛出空指针异常问题
生活随笔
收集整理的這篇文章主要介紹了
Map集合使用get方法返回null抛出空指针异常问题
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
Map集合使用get方法空指針異常問(wèn)題
前言
1.Map里面只能存放對(duì)象,不能存放基本類型,例如int,需要使用Integer
2.Map集合取出時(shí),如果變量聲明了類型,會(huì)先進(jìn)行拆箱,再進(jìn)行轉(zhuǎn)換。
空指針問(wèn)題
如圖,在程序執(zhí)行到27行時(shí),出現(xiàn)了空指針異常.按道理來(lái)講,對(duì)于Map集合是有Key和Value的,Collection集合是只有Value。如果執(zhí)行g(shù)et()方法,當(dāng)不存在key時(shí),對(duì)應(yīng)的應(yīng)該返回null。
map.get(s.charAt(i));因此 由于不存在key“)”,應(yīng)該返回null
但是卻報(bào)了空指針異常。
原因
map.get(s.charAt(i));會(huì)先返回?cái)?shù)據(jù)原本類型Character,當(dāng)數(shù)據(jù)為null時(shí),拆箱轉(zhuǎn)成null將拋出空指針異常。
以下同理
進(jìn)行if判斷時(shí),map.get()方法會(huì)將取出的Character轉(zhuǎn)成表達(dá)式同類型的變量,由于是null
拆箱成char時(shí)將會(huì)拋異常。
總結(jié)
以上是生活随笔為你收集整理的Map集合使用get方法返回null抛出空指针异常问题的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: springboot整合mybatisp
- 下一篇: 微服务架构与SpringCloud