Umgang mit null- und Nullwerten
Im vorherigen Schritt haben wir gelernt, wie man prüft, ob ein Double
-Wrapper-Objekt null
ist. Jetzt wollen wir den Unterschied zwischen einem Double
, der null
ist, und einem Double
, der den Wert Null (0.0
) hat, untersuchen. Diese Unterscheidung ist wichtig, denn null
bedeutet "kein Wert", während 0.0
ein spezifischer numerischer Wert ist.
Stellen Sie sich vor, Sie verfolgen den auf ein Produkt angewendeten Rabatt. Ein null
-Rabatt könnte bedeuten, dass die Rabattinformationen nicht verfügbar sind, während ein Rabatt von 0.0
bedeutet, dass ausdrücklich kein Rabatt angewendet wird.
Lassen Sie uns unser HelloJava.java
-Programm ändern, um diesen Unterschied zu demonstrieren.
-
Öffnen Sie die Datei HelloJava.java
im WebIDE-Editor.
-
Ersetzen Sie den vorhandenen Code durch den folgenden:
public class HelloJava {
public static void main(String[] args) {
Double discount = null; // Discount information not available
if (discount == null) {
System.out.println("Discount information is not available (it is null).");
} else if (discount == 0.0) {
System.out.println("There is no discount (value is 0.0).");
} else {
System.out.println("Discount applied: " + discount);
}
System.out.println("---"); // Separator for clarity
Double zeroDiscount = 0.0; // Explicitly no discount
if (zeroDiscount == null) {
System.out.println("Discount information is not available (it is null).");
} else if (zeroDiscount == 0.0) {
System.out.println("There is no discount (value is 0.0).");
} else {
System.out.println("Discount applied: " + zeroDiscount);
}
System.out.println("---"); // Separator for clarity
Double appliedDiscount = 5.5; // A specific discount value
if (appliedDiscount == null) {
System.out.println("Discount information is not available (it is null).");
} else if (appliedDiscount == 0.0) {
System.out.println("There is no discount (value is 0.0).");
} else {
System.out.println("Discount applied: " + appliedDiscount);
}
}
}
In diesem aktualisierten Code:
- Wir führen drei
Double
-Variablen ein: discount
(initialisiert mit null
), zeroDiscount
(initialisiert mit 0.0
) und appliedDiscount
(initialisiert mit 5.5
).
- Wir verwenden eine
if-else if-else
-Struktur, um den Zustand jeder Variable zu prüfen:
- Zuerst prüfen wir, ob die Variable
null
ist.
- Wenn sie nicht
null
ist, prüfen wir dann, ob ihr Wert 0.0
ist.
- Andernfalls gehen wir davon aus, dass ein spezifischer Rabattwert angewendet wird.
-
Speichern Sie die Datei HelloJava.java
.
-
Kompilieren Sie das Programm im Terminal:
javac HelloJava.java
-
Führen Sie das kompilierte Programm aus:
java HelloJava
Sie sollten die folgende Ausgabe sehen:
Discount information is not available (it is null).
---
There is no discount (value is 0.0).
---
Discount applied: 5.5
Diese Ausgabe zeigt deutlich, wie Java zwischen einem null
-Double
und einem Double
mit dem Wert 0.0
unterscheidet. Das korrekte Handhaben dieser Fälle ist für das Schreiben robuster Java-Anwendungen unerlässlich.
Im nächsten Schritt werden wir einen moderneren Ansatz zum Umgang mit potenziellen null
-Werten mithilfe der Optional
-Klasse untersuchen, der Ihren Code sicherer und lesbarer machen kann.