NullPointerException in Java

Einer der häufigsten und Albträume für Java-Programmierer ist das Erhalten von NullPointerException während die Java-Anwendung ausgeführt wird. Diese Ausnahme ist im Paket „java.lang“ definiert und dient dazu, zu erkennen, ob ein Objekt ohne Inhalt verwendet wird. Hier müssen Sie den Unterschied zwischen Referenz und Objekt verstehen. Eine Referenzvariable ist lediglich ein Handler, der ein tatsächliches Objekt in einem Speicher hält. Im folgenden Beispiel:

Employee emp = new Manager();

Im obigen Code ist „emp“ eine Referenz auf die Employee-Klasse, die das Objekt vom Typ „Manager“ enthält. Hier können Sie davon ausgehen, dass, wenn die „emp“-Referenz keinem Objekt zugewiesen ist, es eine leere Referenz oder einen Nullwert hat. Schauen Sie sich das folgende Beispiel an:

package javabeat.net.core;

public class NullPointerExceptionExample {
	public static void main(String args()){
		Employee emp = null;
		emp.method();
	}
}
abstract class Employee{
	public abstract void method();
}
class Manager extends Employee{
	public void method(){
		System.out.println("test method");
	}
}

Wenn Sie das obige Programm ausführen, erhalten Sie die folgende Ausnahme:

Exception in thread "main" java.lang.NullPointerException
	at javabeat.net.core.NullPointerExceptionExample.main(NullPointerExceptionExample.java:6)

Das obige Beispiel ist eine sehr einfache Implementierung, um den Grund für die NullPointerException zu zeigen. Im realen Szenario wird es jedoch komplizierter sein, die Objektreferenz zu erkennen, wenn sie null ist. Die einzige Möglichkeit, diese Situation zu vermeiden, besteht darin, die Nullwerte zu überprüfen, bevor auf Werte zugegriffen wird. Schauen Sie sich das gleiche Beispiel unten an:

package javabeat.net.core;

public class NullPointerExceptionExample {
	public static void main(String args()) {
		Employee emp = null;
		if (emp != null) {
			emp.method();
		} else {
			emp = new Manager();
			emp.method();
		}
	}
}

abstract class Employee {
	public abstract void method();
}

class Manager extends Employee {
	public void method() {
		System.out.println("test method");
	}
}

Ich habe die „if“-Bedingung hinzugefügt, um zu prüfen, ob die „emp“-Referenz auf die Null zeigt. Wenn ja, erstelle ich das Objekt und rufe es dann auf. Auf diese Weise können Sie die manuelle Behandlung nutzen, um die NullPointerException in Ihrer Anwendung zu vermeiden.

Kommentar verfassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Nach oben scrollen