什么是NPE
NPE(java.lang.NullPointerException): 空指針異常。
NPE容易發生的場景
1.返回類型為基本數據類型,return 包裝數據類型的對象時,自動拆箱有可能產生 NPE。
2.數據庫的查詢結果可能為 null。
3.集合里的元素即使 isNotEmpty,取出的數據元素也可能為 null。
4.遠程調用返回對象時,一律要求進行空指針判斷,防止 NPE。
5.對於Session中獲取的數據,建議進行 NPE檢查,避免空指針。
6.級聯調用 obj.getA().getB().getC();一連串調用,易產生 NPE。
那如何減少NPE的發生呢?
1.遵守代碼規范
一個好的代碼規范可以在一定程度上減少錯誤的發生。這里推薦看阿里巴巴的Java開發手冊,現已經更新到泰山版了,可以直接去官網下載來看。
2.使用Optional類
使用JDK8引入的新特性Optional 類來防止NPE 問題,因為Optional類最主要解決的問題就是NPE。
3.空值檢測
使用if(obj == null)來檢測我們需要檢測的對象,當檢測到Null時,則可以拋出針對性的異常類型。