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”);
}