報錯空指標的解決流程

2021-10-10 02:38:37 字數 1352 閱讀 5015

1.核對給的值是否匹配,你賦值的字段是不是要返回的字段

2.若賦值正確,先對物件進行判空處理,判空可以通過物件的size,也可以使用工具類中封裝好的方法

if

(emptyutils.

isnotempty

(person)

)

3.物件不為空的情況下,還報空指標,就是該屬性可能為空的情況了,對屬性賦值的時候進行非空處理,推薦使用三元表示式。

penson person =

newperson;

person.

setname

(teacher.

getname()

== null ? null : teacher.

getname()

);

問題復現:

(**1)

if(objectutil.

isnotempty

(claimsy)

)(**2)

if(strutil.

isnotempty

(claimsy.

getpolicyno()

)&& strutil.

isnotempty

(claimjq.

getpolicyno()

))

問題描述:執行**,claimsy.getpolicyno()報空指標,debug定位到claimsy為空,但是在前面已經對claimsy做過了非空判斷,依舊報錯空指標。

產生原因:首先,claimsy為空的情況下就不會走**1,所以在**2時,再從claimsy中取值就會報空指標了。

解決方案:在**2中對claimsy做非空處理。

修改如下:

if

( objectutil.

isnotempty

(claimsy)

&& objectutil.

isnotempty

(claimjq)

&& strutil.

isnotempty

(claimsy.

getpolicyno()

)&& strutil.

isnotempty

(claimjq.

getpolicyno()

))

總結:鏈式取值需要對每一級取值的物件做非空判斷

解決dubbo空指標異常

今天做了乙個簡單的dubbo案例,但是通過頁面訪問的時候,控制台一直報空指標異常,一開始是以為沒有寫service層的註解,但是事實上我是寫了的,如下 import com.alibaba.dubbo.config.annotation.service import com.dubbo.servic...

優雅解決空指標異常 Optional

所以如何獲取optional物件?使用of t value 和ofnullable t value 方法 of t value 方法中value是任意型別但是不能為null ofnullable t value 方法value也是任意型別,但是可以為null optional optional op...

jsp 向後台傳參報錯「空指標異常」

jsp頁面向controller傳參時,空指標異常 public string edituserinfo requestparam value usergender required false integer usergender 在 requestparam 後面新增 value usergen...