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

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

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

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

1、字符串變量未初始化

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

Map map // 會報錯

Map map = new Map(); //則不會報錯了

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

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

String str = null;

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

//這里的代碼將不會被觸發(fā),因為會拋出java.lang.NullPointerException異常。

}

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

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

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

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

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

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

下圖為異常分布圖:

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

相關(guān)文章

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

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

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

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

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

    Java JDBC基本使用方法詳解

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

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

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

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

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

    Java中反射的一個簡單使用

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

    java計算π的多種方法

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

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

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

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

    Nacos?提供了一組簡單易用的特性集,幫助您快速實現(xiàn)動態(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的示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-01-01

最新評論