Nullzeiger-Ausnahme in Java: Implementierung und Beispiele



In diesem Artikel erhalten Sie detaillierte und umfassende Kenntnisse über die Funktionsweise der Nullzeiger-Ausnahme in Java mit zahlreichen Beispielen.

Ausnahmen sind für den reibungslosen Ablauf des Codes erforderlich und informieren die Programmierer über den zu lösenden Fehler. In diesem Artikel konzentrieren wir uns auf die Nullzeigerausnahme in Java in der folgenden Reihenfolge:

Was ist eine Nullzeiger-Ausnahme in Java?





Die Nullzeigerausnahme in Java ist eine Laufzeitausnahme. In der Welt von Java wird einer Objektreferenz ein spezieller Nullwert zugewiesen. Die Nullzeigerausnahme wird eingeführt, wenn ein Programm versucht, eine Objektreferenz zu verwenden, die den Nullwert hat. Welches sein kann:

Hashmap-Implementierung in Java-Beispiel
  • So rufen Sie eine bestimmte Methode von einem Nullobjekt aus auf
  • Zugriff auf oder Änderung des Felds eines Nullobjekts.
  • Wenn man die Länge von null betrachtet, als wäre es ein Array.
  • Beim Zugriff auf oder Ändern der Slots eines Null-Objekts.
  • Null werfen wie ein Wurfwert.
  • Versuch, über ein Nullobjekt zu synchronisieren.

Warum brauchen wir den Nullwert?



Null ist ein eindeutiger Wert, der in Java verwendet wird. Null wird verwendet, um anzuzeigen, dass einer Referenzvariablen kein Wert zugewiesen ist. Die Hauptanwendung von Null liegt in der Implementierung von Datenstrukturen wie verknüpften Listen und Bäumen. Einige andere Anwendungen umfassen Nullobjektmuster und Singleton-Muster. Ein Singleton-Muster gibt an, dass nur eine Instanz einer Klasse initiiert werden kann, und zielt darauf ab, einen globalen Zugriffspunkt auf das Objekt bereitzustellen.

Die beste und einfachste Möglichkeit, mindestens eine Instanz einer Klasse zu erstellen, besteht darin, alle Konstruktoren als privat zu deklarieren. Anschließend erstellen sie eine öffentliche Methode, die die eindeutige Instanz der Klasse zurückgibt.

// Zufällige UUID-Funktion verwenden. import java.util.UUID import java.io. * class Singleton {// Hier initialisieren wir die Werte von single und ID auf null. private static Singleton single = null private String ID = null private Singleton () {/ * Machen Sie es privat, um die Erstellung neuer Instanzen der Singleton-Klasse zu verhindern. * / // Erstelle eine zufällige ID ID = UUID.randomUUID (). ToString ()} public static Singleton getInstance () {if (single == null) single = new Singleton () return single} public String getID () {return this.ID}} // Treibercode öffentliche Klasse TestSingleton {public static void main (String [] args) {Singleton s = Singleton.getInstance () System.out.println (s.getID ())}} //

Ausgabe:



null-pointer

Das obige Beispiel ist eine statische Instanz der Singleton-Klasse. Die Instanz wird höchstens einmal innerhalb der Singleton get Instance-Methode initialisiert.

konvertiere von double nach int java

Wie vermeide ich die Nullzeiger-Ausnahme in Java?

Um die Nullzeiger-Ausnahme in Java zu vermeiden, müssen wir sicherstellen, dass alle Objekte ordnungsgemäß initialisiert wurden, bevor Sie sie verwenden. Wenn eine Referenzvariable deklariert wird, müssen wir überprüfen, ob ein Objekt nicht null ist und bevor wir Methoden oder Felder von Objekten anfordern. Im Folgenden sind einige Probleme mit den entsprechenden Lösungen aufgeführt, um dieses Problem zu lösen.

// Programm zum Demonstrieren des Aufrufs einer Methode // bei Null verursacht den NullPointerException-Import java.io. * Klasse GFG {public static void main (String [] args) {// String-Variable mit Nullwert initialisieren String ptr = null // Überprüfen, ob ptr.equals null ist oder einwandfrei funktioniert. try {// Diese Codezeile löst eine NullPointerException // aus, da ptr null ist, wenn (ptr.equals ('gfg')) System.out.print ('Same') else System.out.print ('Not Same')} catch (NullPointerException e) {System.out.print ('NullPointerException Caught')}}}

Ausgabe:

Überprüfung der Argumente einer Methode

Denken Sie immer daran, dass Sie vor dem Ausführen des Hauptteils einer neuen Methode die Argumente für Nullwerte sicherstellen und mit der Ausführung der Methode fortfahren sollten. Genau dann, wenn die Argumente richtig geprüft werden. Andernfalls wird eine 'IllegalArgumentException' ausgelöst und die aufrufende Methode aufgerufen, dass mit den übergebenen Argumenten etwas nicht stimmt.

// Programm, um zu überprüfen, ob Parameter null sind oder nicht, bevor // sie verwendet werden. import java.io. * class GFG {public statisch void main (String [] args) {// String s setzt einen leeren String und ruft getLength () auf String s = '' try {System.out.println (getLength (s) )} catch (IllegalArgumentException e) {System.out.println ('IllegalArgumentException catch')} // String s auf einen Wert gesetzt und getLength () s = 'GeeksforGeeks' aufgerufen try {System.out.println (getLength (s) )} catch (IllegalArgumentException e) {System.out.println ('IllegalArgumentException catch')} // Setze s als null und rufe getLength () s = null auf try {System.out.println (getLength (s))} catch ( IllegalArgumentException e) {System.out.println ('IllegalArgumentException abgefangen')}} // Funktion zum Zurückgeben der Länge von Zeichenfolgen s. Es löst // IllegalArgumentException aus, wenn s null ist. public static int getLength (String s) {if (s == null) löst eine neue IllegalArgumentException aus ('Das Argument darf nicht null sein') return s.length ()}}

Ausgabe:

Verwendung des ternären Operators

Ein ternärer Operator wird verwendet, um NullPointerException zu vermeiden. Der boolesche Ausdruck wird überprüft, und wenn der Ausdruck wahr ist, wird der Wert1 zurückgegeben, andernfalls wird der Wert2 zurückgegeben. Der ternäre Operator zur Behandlung von Nullzeigern kann verwendet werden: Das rechte Bild ist die entsprechende Ausgabe.

Erhöhen einer Zahl zu einer Macht in Java
// Ein Java-Programm, das demonstriert, dass wir den ternären Operator // verwenden können, um NullPointerException zu vermeiden. import java.io. * class GFG {public statisch void main (String [] args) {// Stringvariable mit Nullwert initialisieren String str = null String message = (str == null)? '': str.substring (0,5) System.out.println (message) str = 'Edureka_Java_Blog' message = (str == null)? '': str.substring (0,5) System.out.println (Nachricht)}}

Ausgabe:

Edurek

Damit kommen wir zum Ende der Null-Zeiger-Ausnahme in Java. Ich hoffe, Sie haben eine Idee von Null Pointer Exception.

Besuche die von Edureka, einem vertrauenswürdigen Online-Lernunternehmen mit einem Netzwerk von mehr als 250.000 zufriedenen Lernenden auf der ganzen Welt. Der Java J2EE- und SOA-Schulungs- und Zertifizierungskurs von Edureka richtet sich an Studenten und Fachleute, die Java-Entwickler werden möchten. Der Kurs soll Ihnen einen Vorsprung in die Java-Programmierung verschaffen und Sie sowohl für grundlegende als auch für fortgeschrittene Java-Konzepte sowie für verschiedene Java-Frameworks wie Hibernate & Spring schulen.

Hast du eine Frage an uns? Bitte erwähnen Sie dies im Kommentarbereich dieses Blogs „Null-Zeiger-Ausnahme in Java“. Wir werden uns so schnell wie möglich bei Ihnen melden.