java.lang.NullPointerException空指針異常(解決方案)

java.lang.NullPointerException今天又是寫bug的一天,小結一下是如何解決空指針異常的,遇到更多的問題找到更多的解題思路自己纔可以進步,加油!


一、實戰問題

先說說我實戰遇到的問題:我本身要從redis中取出帖子的點贊總數(likeCount),然後封裝到Vo視圖中,但是很多文章(帖子)本身點贊數就爲0,所以你從redis取出來的值likeCount爲空null

如果不進行判斷直接封裝,如下:

Object likeCount = redisTemplate.opsForValue().get(key);
postVo.setLikeCount((Integer) likeCount); 

前端出現的情況如下
在這裏插入圖片描述
我錯誤的解決方案:我習慣性用.equals來進行判斷

在這裏插入圖片描述
項目一開馬上報錯
在這裏插入圖片描述
空指針異常
在這裏插入圖片描述
根據建議修改爲StringUtils幫助類
在這裏插入圖片描述

StringUtils 方法的操作對象是 java.lang.String 類型的對象,是對 JDK 提供的 String 類型操作方法的補充,並且是 null 安全的(即如果輸入參數 String 爲 null 則不會拋出 NullPointerException ,而是做了相應處理,例如,如果輸入爲 null 則返回也是 null 等,具體可以查看源代碼)。


注意:在此免費贈送一套最新Java架構項目實戰教程+大廠面試題庫,有興趣的 點擊此處獲取,沒基礎勿進!


二、總結反思

仔細反思一下爲什麼我剛剛會遇到空指針異常呢?

在這裏插入圖片描述

因爲在這裏我取到的likeCount爲空,既然這個對象本身爲空那自然不能調用這個方法。

所謂空指針異常,是因爲用空(null)去調用屬性或方法。null表示沒有這個對象,既然沒有這個對象,那麼去調用他的屬性和方法,就會報異常。

equals何時會空指針異常?

關於A.equals(B)-儘量是“常量”.equals(變量)

①對象爲空(null),則不能調用方法;

②所以,爲了避免出現空指針異常,應該這樣寫"要比較的字符串A.equals(變量B)


Hope that we can grow and progress as soon as possible and become an excellent Java Development Engineer

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章