Test mit Null-Arrays
In diesem letzten Schritt werden wir untersuchen, was passiert, wenn Sie versuchen, auf die length
-Eigenschaft eines Arrays zuzugreifen, das nicht initialisiert wurde oder null
ist. Das Verständnis, wie man null
-Werte behandelt, ist entscheidend, um Fehler in Ihren Programmen zu vermeiden.
In Java hat eine Variable, die deklariert, aber kein Objektreferenz zugewiesen wurde, einen Standardwert von null
. Wenn Sie versuchen, auf eine Eigenschaft oder Methode eines null
-Objekts zuzugreifen, wirft Java eine NullPointerException
. Dies ist ein häufiger Laufzeitfehler, den Sie in der Java-Programmierung begegnen werden.
Lassen Sie uns unser Programm ändern, um zu sehen, was passiert, wenn wir versuchen, die length
eines null
-Arrays zuzugreifen und wie wir dies elegant behandeln können.
-
Öffnen Sie die Datei HelloJava.java
im WebIDE-Editor.
-
Ersetzen Sie den aktuellen Code durch folgenden:
public class HelloJava {
public static void main(String[] args) {
int[] numbers = null; // Declare an array but set it to null
// Attempt to access the length property (this will cause an error)
// int arraySize = numbers.length; // Commenting this out to prevent error
// How to safely check for null before accessing length
if (numbers != null) {
int arraySize = numbers.length;
System.out.println("The size of the array is: " + arraySize);
} else {
System.out.println("The array is null. Cannot get its length.");
}
}
}
Hier ist eine Zusammenfassung der Änderungen:
int[] numbers = null;
: Wir deklarieren das numbers
-Array, aber setzen seinen Wert explizit auf null
. Dies bedeutet, dass die Variable numbers
derzeit nicht auf ein tatsächliches Array-Objekt im Speicher verweist.
// int arraySize = numbers.length;
: Wir haben die Zeile auskommentiert, die versucht, direkt auf numbers.length
zuzugreifen. Wenn wir diesen Code ohne die if
-Prüfung ausführen würden, würde dies zu einer NullPointerException
führen.
if (numbers != null)
: Dies ist der entscheidende Teil für die Behandlung von null
. Wir verwenden eine if
-Anweisung, um zu prüfen, ob die Variable numbers
nicht null
ist. Der !=
-Operator bedeutet "ungleich".
int arraySize = numbers.length; System.out.println("The size of the array is: " + arraySize);
: Dieser Codeblock wird nur ausgeführt, wenn numbers
nicht null
ist. Innerhalb dieses Blocks ist es sicher, auf numbers.length
zuzugreifen.
else
: Dieser Block wird ausgeführt, wenn die if
-Bedingung falsch ist, d. h., numbers
ist null
.
System.out.println("The array is null. Cannot get its length.");
: Diese Nachricht wird ausgegeben, wenn das Array null
ist und informiert den Benutzer, dass die Länge nicht ermittelt werden kann.
-
Speichern Sie die Datei (Strg+S oder Cmd+S).
-
Kompilieren Sie das geänderte Programm im Terminal:
javac HelloJava.java
-
Führen Sie das kompilierte Programm aus:
java HelloJava
Sie sollten folgende Ausgabe sehen:
The array is null. Cannot get its length.
Diese Ausgabe zeigt, dass unser Programm korrekt erkannt hat, dass das Array null
war und die Situation behandelt hat, ohne eine NullPointerException
zu werfen.
Das Behandeln von null
-Werten ist eine sehr wichtige Fähigkeit in der Java-Programmierung. Prüfen Sie immer, ob eine Objektreferenz null
ist, bevor Sie versuchen, auf ihre Eigenschaften oder Methoden zuzugreifen, um Laufzeitfehler zu vermeiden.