English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
En Java, cada tipo tiene un valor predeterminado. Cuando no inicializa las variables de instancia de una clase, el compilador de Java utiliza estos valores para inicializarlas por usted. Null es el valor predeterminado para los tipos de objeto, también puede asignar manualmente null a un objeto en un método.
Object obj = null;
Pero, no puede usar un objeto con valor nulo o (si se usa un valor nulo en lugar de un objeto) el objeto, lo que provocaráNullPointerException.
Aquí hay algunos casos en los que se produce NullPointerException.
Llamar al método a (instancia) con un objeto nulo.
public class Demo { public void demoMethod() { System.out.println("Hello how are you"); } public static void main(String args[]) { Demo obj = null; obj.demoMethod(); } }
Excepción en el hilo "main" java.lang.NullPointerException at july_set3.Demo.main(Demo.java:11)
Acceder, modificar, imprimir el valor nulo (objeto) de un campo.
public class Demo { String name = "Krishna"; int age = 25; public static void main(String args[]) { Demo obj = null; System.out.println(obj.age); System.out.println(obj.name); } }
Excepción en el hilo "main" java.lang.NullPointerException at july_set3.Demo.main(Demo.java:11)
Intentar acceder (imprimir/Usar la longitud del valor nulo en una declaración.
public class Demo { String name = null; public static void main(String args[]) { Demo obj = new Demo(); System.out.println(obj.name.length()); } }
Excepción en el hilo "main" java.lang.NullPointerException at july_set3.Demo.main(Demo.java:7)
Lanzar un valor nulo.
public class Demo { public static void main(String args[]) { lanzar null; } }
Excepción en el hilo "main" java.lang.NullPointerException at july_set3.Demo.main(Demo.java:5)
Acceder o modificar un elemento con valor nulo/Slot.
public class Demo { public static void main(String args[]) { int myArray[] = null; System.out.println(myArray[5)]; } }
Excepción en el hilo "main" java.lang.NullPointerException at july_set3.Demo.main(Demo.java:6)
Evitar NullPointerException
Asegúrese de que todos los objetos estén inicializados antes de usarlos.
Asegúrese de que cada variable de referencia (objeto, array, etc.) no sea null antes de acceder a los campos y métodos (si los hay).
Sí, puede manejar NullPointerException en el método main y mostrar su propio mensaje. Además, si no se ha manejado, el programa terminará con una excepción en tiempo de ejecución.
public class Demo { public static void main(String args[]) { int myArray[] = null; try { System.out.println(myArray[5)]; } System.out.println("NPE ocurrió"); } } }
Resultado de salida
NPE ocurrió
Pero, dado que NullPointerException es una excepción de tiempo de ejecución/Excepciones no verificadas, por lo tanto, no es necesario manejarlas en tiempo de ejecución.
Además, siempre que haya errores que corregir en el programa, se producirá NPE, se recomienda que arregle o evite el error en lugar de intentar capturar la excepción.