欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

解決java.lang.NullPointerException報(bào)錯(cuò)以及分析出現(xiàn)的幾種原因

 更新時(shí)間:2021年12月09日 10:44:23   作者:宜春  
這篇文章介紹了解決java.lang.NullPointerException報(bào)錯(cuò)的方法,以及分析出現(xiàn)的幾種原因。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

java.lang.NullPointerException出現(xiàn)的幾種原因:

1、字符串變量未初始化

2、接口類型的對(duì)象沒有用具體的類初始化,比如:

Map map // 會(huì)報(bào)錯(cuò)

Map map = new Map(); //則不會(huì)報(bào)錯(cuò)了

3、當(dāng)一個(gè)對(duì)象的值為空時(shí),你沒有判斷為空的情況。

4、字符串與文字的比較,文字可以是一個(gè)字符串或Enum的元素,如下會(huì)出現(xiàn)異常

String str = null;

if(str.equals(“Test”)){undefined

//這里的代碼將不會(huì)被觸發(fā),因?yàn)闀?huì)拋出java.lang.NullPointerException異常。

}

5、優(yōu)先使用String.valueOf()方法代替toString()

當(dāng)程序代碼需要對(duì)象的字符串表示形式時(shí),請(qǐng)避免使用該對(duì)象的toString方法。如果你的對(duì)象的引用等于null,NullPointerException則會(huì)拋出,使用靜態(tài)String.valueOf方法,該方法不會(huì)拋出任何異常并打印"null"

6、class被聲明了類型, 默認(rèn) class = null; 這樣在調(diào)用class中方法的時(shí)候系統(tǒng)只能給你個(gè)空指針異常, 給其實(shí)例化就好了:class = new Class();

7、返回null,方法的返回值不要定義成為一般的類型,而是用數(shù)組。這樣如果想要返回null的時(shí)候就能避免許多不必要的NullPointerException

總之,NullPointerExceptionRuntimeException派生出來,是一個(gè)運(yùn)行時(shí)異常。其意指可能會(huì)在運(yùn)行的時(shí)候才會(huì)被拋出,一個(gè)變量是null,及只有其名,沒有實(shí)值內(nèi)容,也沒分配內(nèi)存,當(dāng)你要去取他的長(zhǎng)度,對(duì)他進(jìn)行操作就會(huì)出現(xiàn)NullPointException,所以聲明變量時(shí)最好給它分配好內(nèi)存空間,給予賦值,例如拿該變量與一個(gè)值比較時(shí),要么先做好該異常的處理要么給它進(jìn)行判斷先: if (str !=null && str “”){ …}

判斷一個(gè)String的實(shí)例s是否等于“a”時(shí),不要寫成s.equals(“a”),這樣容易拋NullPointerException,而寫成"a".equals(s)就可以避免這個(gè)問題,不過對(duì)變量先進(jìn)行判空后再進(jìn)行操作更好,盡量避免返回null,方法的返回值不要定義成為一般的類型,用數(shù)組。這樣如果想要返回null的時(shí)候,就返回一個(gè)沒有元素的數(shù)組。就能避免許多不必要的NullPointerException

下圖為異常分布圖:

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 如何解決Gradle、Maven項(xiàng)目build后沒有mybatis的mapper.xml文件的問題

    如何解決Gradle、Maven項(xiàng)目build后沒有mybatis的mapper.xml文件的問題

    這篇文章主要介紹了如何解決Gradle、Maven項(xiàng)目build后沒有mybatis的mapper.xml文件的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-01-01
  • WebFlux 服務(wù)編排使用優(yōu)勢(shì)詳解

    WebFlux 服務(wù)編排使用優(yōu)勢(shì)詳解

    這篇文章主要為大家介紹了WebFlux 服務(wù)編排使用優(yōu)勢(shì)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-05-05
  • Java JDBC基本使用方法詳解

    Java JDBC基本使用方法詳解

    這篇文章主要介紹了Java JDBC基本使用方法,結(jié)合實(shí)例形式詳細(xì)分析了java JDBC基本原理、用法及操作注意事項(xiàng),需要的朋友可以參考下
    2020-04-04
  • 關(guān)于swagger配置及踩坑@Api參數(shù)postion無效解決接口排序問題

    關(guān)于swagger配置及踩坑@Api參數(shù)postion無效解決接口排序問題

    這篇文章主要介紹了關(guān)于swagger配置及踩坑@Api參數(shù)postion無效解決接口排序問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-06-06
  • spring中FactoryBean中的getObject()方法實(shí)例解析

    spring中FactoryBean中的getObject()方法實(shí)例解析

    這篇文章主要介紹了spring中FactoryBean中的getObject()方法實(shí)例解析,分享了相關(guān)代碼示例,小編覺得還是挺不錯(cuò)的,具有一定借鑒價(jià)值,需要的朋友可以參考下
    2018-02-02
  • Java中反射的一個(gè)簡(jiǎn)單使用

    Java中反射的一個(gè)簡(jiǎn)單使用

    一直感覺Java的反射機(jī)制很強(qiáng)大,JAVA反射技術(shù)在平時(shí)我們的開發(fā)中雖然很少會(huì)用到,但在我們所使用的框架源碼中是經(jīng)常會(huì)用到的。這篇文中就給大家介紹了關(guān)于Java中反射的一個(gè)簡(jiǎn)單使用,有需要的朋友們下面來一起看看吧。
    2016-11-11
  • java計(jì)算π的多種方法

    java計(jì)算π的多種方法

    這篇文章主要介紹了使用java計(jì)算π的多種方法,代碼詳細(xì),邏輯清晰,對(duì)于算法思路可能有所幫助,需要的朋友可以參考下
    2021-04-04
  • RocketMQ消息積壓原因及處理方法

    RocketMQ消息積壓原因及處理方法

    RocketMQ是一種可靠的、可擴(kuò)展的消息中間件,廣泛應(yīng)用于分布式系統(tǒng)中的消息通信,然而,在高并發(fā)的場(chǎng)景下,由于消息產(chǎn)生速度超過消費(fèi)速度,可能會(huì)導(dǎo)致消息積壓的問題,本文將介紹RocketMQ消息積壓的原因和如何處理積壓?jiǎn)栴}
    2023-06-06
  • springboot整合nacos的入門Demo及Nacos安裝部署

    springboot整合nacos的入門Demo及Nacos安裝部署

    Nacos?提供了一組簡(jiǎn)單易用的特性集,幫助您快速實(shí)現(xiàn)動(dòng)態(tài)服務(wù)發(fā)現(xiàn)、服務(wù)配置、服務(wù)元數(shù)據(jù)及流量管理,Nacos?致力于幫助您發(fā)現(xiàn)、配置和管理微服務(wù),這篇文章主要介紹了springboot整合nacos的入門Demo,需要的朋友可以參考下
    2024-01-01
  • springData使用QueryDsl的示例代碼

    springData使用QueryDsl的示例代碼

    這篇文章主要介紹了springData使用QueryDsl的示例代碼,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2019-01-01

最新評(píng)論