Home / Android-Entwicklung / Lösen der Nullzeiger-Ausnahme in Java

Lösen der Nullzeiger-Ausnahme in Java

 Null-Zeiger-Ausnahme Java

Java ist zwar eine der gefragtesten und am weitesten verbreiteten Programmiersprachen der Welt, aber nicht ohne Kritiker. Java ist keine besonders anfängerfreundliche Sprache und es gibt viele strenge Regeln und Strukturen, die schwer zu verstehen sind. Dann gibt es die NullPointerException.

Die Nullzeigerausnahme ist eine "Ausnahme" (Fehler), die besonders häufig beim Programmieren in Java auftritt. Für einen Anfänger ist dies eine verwirrende und entmutigende Nachricht, aber es kann für Profis genauso Kopfschmerzen bereiten! In der Tat sind Nullzeiger-Ausnahmen so häufig und so schädlich, dass sie als „Milliarden-Dollar-Fehler“ bezeichnet werden. Autsch!

In diesem Beitrag werden wir den Ausdruck auspacken, um herauszufinden, was er genau bedeutet und was Sie tun sollten, wenn Sie in Ihrem eigenen Code auf eine Nullzeigerausnahme stoßen!

Was bedeutet eine Nullzeigerausnahme?

Zuerst müssen wir genau verstehen, was unter einem Zeiger zu verstehen ist und wie er null sein kann!

Um dies zu tun, ist es hilfreich, sich daran zu erinnern, dass eine Variable tatsächlich ein „Zeiger“ ist, der den Computer zum Betrachten auffordert ein bestimmter Ort. Dieser Ort enthält dann einen Wert, der der Wert der angegebenen Variablen ist.

Wenn wir also "int x = 3" sagen, wählt der Computer einen Ort zum Aufrufen von "x" und speichert den Wert ". 3 ”dort. Wenn Sie in Ihrem Code weiter unten auf x verweisen, überprüft der Computer diesen Speicherort und stellt fest, dass es sich um eine „3“ handelt (sofern Sie ihn nicht geändert haben). Die Variable zeigt den Computer auf das richtige Ziel.

Siehe auch: Variablen in Java verstehen

Aus diesem Grund ist es hilfreich, zuerst die potenzielle Größe einer Variablen zu kennen dem Computer, wie viel Speicherplatz für diesen Wert reserviert werden soll.

Aber was passiert, wenn Sie einen Zeiger haben, der nirgendwo hin zeigt? Hier kommt die Nullzeiger-Ausnahme ins Spiel.

Objekte und Referenzen

Eine Ganzzahl wie "x" ist das, was wir als "primitiven Typ" bezeichnen. Dies bedeutet, dass es sich um einen Grundwert handelt.

Ein Objekt hingegen ist eine komplexere Datenstruktur, die mehrere Werte und Methoden haben kann. Wie primitive Typen müssen sie jedoch noch irgendwo gespeichert werden und sie benötigen immer noch eine Adresse und einen Zeiger.

Ein Beispiel ist String. Dies ist kein primitiver Typ in Java, sondern ein Referenztyp: In diesem Fall „verweist“ er auf eine Klasse, die mehrere Werte und Methoden haben kann. Sobald Sie eine Instanz einer Zeichenfolge initialisiert haben, können Sie Folgendes tun:

 myString.length (); 

Hier erfahren Sie, wie lange diese Zeichenfolge dauert, indem Sie die Methode verwenden, die zu dieser Klasse gehört. Dies macht aber auch die Nullzeigerausnahme möglich, da „length ()“ ein Wert ist, der sich auf eine bestimmte Instanz eines Objekts bezieht. Das heißt, es wirkt auf eine bestimmte Zeichenfolge sobald sie erstellt wurde.

Sie müssen also sagen:

 Zeichenfolge myString = „Hallo“;
myString.length (); 

Aber sollten Sie sagen:

 String myString = null;
myString.length (); 

Sie hätten einen Zeiger ( myString ) erstellt, aber dieser Zeiger zeigt nirgendwo hin – er weiß nicht, wo er suchen soll. Eine andere Art, das zu sagen? Der Zeiger ist null .

Der Schlüssel zum Verständnis ist, dass es keinen Wert gibt, sondern dass die Variable nirgendwo darauf zeigt, dass ist. Ein Wert.

Es gibt bestimmte Codierungsentwurfsmuster, die von der Möglichkeit profitieren, Nullwerte zuzuweisen. Daher ist dies unter diesen Umständen eine nützliche Funktion. Solange Sie sich daran erinnern, dass das Objekt null ist!

So verhindern Sie Nullzeigerausnahmen Java

Der Grund dafür, dass Nullzeigerausnahmen in Java so unbeliebt sind, ist, dass es sich um Laufzeitausnahmen handelt. Das bedeutet, dass die App problemlos kompiliert werden kann und Sie erst dann davon erfahren, wenn Sie diesen Punkt im Code erreichen. Es ist daher möglich, dass ein Nullzeiger durch das Netz rutscht, wenn Sie viele Objekte im laufenden Betrieb initialisieren.

Aus diesem Grund ist es nützlich, Maßnahmen einzuschließen, um Nullzeigerausnahmen zur Laufzeit zu verhindern.

Am einfachsten Wie geht das?


 if (myString == null) {
 Rückkehr;
} 

Auf diese Weise können Sie schnell überprüfen, ob ein Objekt null ist, und so Code umgehen, der eine Ausnahme auslösen würde. Es gibt auch andere Tricks, die Sie verwenden können. Wenn Sie beispielsweise Zeichenfolgen vergleichen, ist es eine gute Möglichkeit, die Methode aus dem Zeichenfolgenliteral aufzurufen und nicht umgekehrt:

 If ("Hello!". Equals (myString)) {

Statt: [19659017] If (myString.equals ("Hello!")) {

Auf diese Weise vermeiden Sie das Auslösen einer Ausnahme. ODER Sie könnten einfach Kotlin verwenden, das von Natur aus „null sicher“ ist!

Siehe auch: Kotlin-Tutorial für Android für Anfänger: Erstellen Sie ein einfaches Quiz

Möchten Sie mehr über das Schreiben von gut gestalteten, fehlerfreien Texten erfahren? Java-Code? Dann lesen Sie unseren Leitfaden zu den besten Ressourcen, um Java zu lernen. Oder warum nicht mit unserem kostenlosen, umfassenden Java-Tutorial für Anfänger beginnen?

About AndroidWeltEditor

Check Also

Android Developers Blog: Warteschlange der Verbesserungen

Gepostet von Jeff Vander Stoep, Android Security & Privacy Team und Chong Zhang, Android Media …

Schreibe einen Kommentar

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