NPE ย่อมาจาก NullPointerException เกิดจากการทำกิจกรรมกับตัวแปรที่เป็นชนิดของข้อมูลแบบ reference data type ที่มีค่าเป็น null อันอาจจะเนื่องมาจากเราไม่ได้กำหนดค่าให้กับตัวแปร หรือการได้รับค่า null มาจากกิจกรรมอื่น เราสามารถหลีกเลี่ยงการเกิด NPE ได้โดย

1. กำหนดค่าตั้งต้นให้กับตัวแปรแบบ reference data type เสมอ

2. เลือกการทำกิจกรรมกับตัวแปรที่มีค่า หรือ ค่าที่จะนำมาใช้ เช่น หากเราต้องการเปรียบเทียบข้อมูลของชนิดของตัวแปรแบบ String ด้วยเมธอกด equal() หากเราไม่แน่ใจว่าตัวแปรที่เราต้องการเปรียบเทียบค่าเป็น null หรือไม่ ให้เราสลับเอาเมธอดไปใช้กับค่า หรือ ตัวแปรที่มีค่าแทน ดังตัวอย่างด้านล่าง

String str = null;

if (str.equals(“abc”)) { // หากตัวแปร str เป็น null จะทำให้เกิด NPE
    System.out.println(“The same”);
}

String str = null;

if (“abc”.equals(str)) { //  เราสลับเอาเมธอด equal มาใช้กับค่าที่ต้องการเปรียบเทียบแทน จะไม่เกิด NPE
    System.out.println(“The same”);
}

3. เลือกใช้ Java API ที่ไม่ก่อให้เกิด NPE เช่นการใช้คลาส Object ในการเปรียบเทียบ ข้อมูลของชนิดของตัวแปรแบบ String เช่น

String s1 = null;
String s2 = null;
        
if (Objects.equals(s1, s2)) { // จะไม่เกิด NPE
    System.out.println(“Strings are the same”);
}