如何在 Java 中解決 NullPointerException?
NullPointerException 是 JVM 在我們的應用程式程式碼、其他引用的 API 或中介軟體遇到以下情況時丟擲的執行時異常。
嘗試呼叫空物件的例項方法。
嘗試訪問或修改空物件的特定欄位。
嘗試獲取空物件作為陣列的長度。
解決 NullPointerException 的步驟
檢視 java.lang.NullPointerException 堆疊跟蹤並確定異常觸發的位置(應用程式程式碼、第三方 API、中介軟體軟體並提取行號)。
如果問題出現在應用程式程式碼中,則需要進行程式碼 walkthrough。如果問題來自第三方 API 或中介軟體,則需要首先檢視引用的程式碼並確定它是否可能是問題的間接來源,例如,將空值傳遞給第三方 API 方法等。
如果在應用程式程式碼中發現問題,則嘗試確定哪個物件例項為空並導致問題。我們需要修改程式碼以新增適當的空值檢查驗證和正確的日誌記錄,以便我們也能瞭解空值的來源。
示例
public class NPEDemo { private String field1 = null; private String field2 = null; public String getField1() { return field1; } private void setField1(String field1) { this.field1 = field1; } public String getField2() { return field2; } private void setField2(String field2) { this.field2 = field2; } public static void main(String[] args) { try { NPEDemo npe = new NPEDemo(); npe.setField1("field1 value"); npe = null; npe.setField2("field2 Value"); } catch (Throwable e) { System.out.println("Java Error is: "+e ); e.printStackTrace(); } } }
輸出
Java Error is: java.lang.NullPointerException java.lang.NullPointerException at NPEDemo.main(NPEDemo.java:21)
廣告