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...