回覆列表
-
1 # 小蔡帶你看科技
-
2 # IT工匠
首先明確什麼是空指標:從表面上看Java中如果呼叫某個沒有指向合法引用的物件的某個方法或者引用物件的某個成員變數時就會觸發空指標異常,最根本的原因是因為物件為null。
所以解決方案如下:
1:及時初始化物件
2:使用try catch語句塊捕捉空指標異常
-
3 # 程式猿W
java 中 空指標處理如下
1、儘量別返回 null比如以下程式碼:
現在 getEmpolyes() 可能返回null ,但是否一定怎麼做呢 ? 如果修改getEmpolyes,返回空類表,就能使程式碼整潔起來。
java 可以透過Collections.emptyList()方法,該方法返回一個預定義不可變列表,可用於這個目的
這樣編碼,就能儘量避免NullPointerException出現,程式碼也就更加簡潔了。
2、別傳遞null值在方法中傳遞null值是最糟糕的做法,但將null值傳遞給其他方法就更糟糕了,除非API要求你向它傳遞null值,否則就要儘量可能避免傳遞null值。
如果有人傳入null,我們可以丟擲一個NullPointerException異常。
在大多數語言中,沒有良好的方法能對付由呼叫者意外傳入的null值,恰當的做法是禁止傳入null值。這樣,你在編碼的時候,就會時時記住引數列表中的null值
意味著出問題了,從而大量避免這種無心之失。
3、Java 8 中的 Optional 處理 nullOptional 類是一個可以為null的容器物件。如果值存在則isPresent()方法會返回true,呼叫get()方法會返回該物件。
Optional 是個容器:它可以儲存型別T的值,或者僅僅儲存null。Optional提供很多有用的方法,這樣我們就不用顯式進行空值檢測。
Optional 類的引入很好的解決空指標異常。
例如: 獲取 User 物件裡的Address
傳統寫法:
java8寫法:
建議try catah 捕獲異常,然後在finally中邏輯處理為空的情況。
實際開發中,建議在感覺可能為空的地方加上if判斷,避免空指標異常的發生。