„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Wie kann der optionale Typ von Java die Handhabung von Nullen in Ketten von „Get“-Aufrufen vereinfachen?

Wie kann der optionale Typ von Java die Handhabung von Nullen in Ketten von „Get“-Aufrufen vereinfachen?

Veröffentlicht am 08.11.2024
Durchsuche:292

How Can Java\'s Optional Type Simplify Handling Nulls in Chains of \

Sicheres Navigieren in Ketten von „Get“-Aufrufen mit optionalen Elementen

Bei der Java-Programmierung kommt es häufig vor, dass man auf Ketten von „Get“-Aufrufen stößt. wie die Folgendes:

house.getFloor(0).getWall(WEST).getDoor().getDoorknob();

Um potenzielle NullPointerExceptions zu vermeiden, greifen Entwickler häufig auf ausführliche Nullprüfungen zurück:

if (house != null &&& house.getFloor(0) &&& house.getFloor(0).getWall(WEST) != null &&& house.getFloor(0).getWall(WEST).getDoor() != null) ...

Dieser Ansatz wird bei längeren Aufrufketten noch unhandlicher. Gibt es eine elegantere Lösung?

Ja, mit der Einführung des optionalen Typs in Java 8 ist die Handhabung von Nullen in Ketten von Abrufen erheblich einfacher geworden.

Optional für die Nullbehandlung verwenden

Optional ist eine Wrapper-Klasse, die einen optionalen Wert darstellt. Es kann entweder einen Wert ungleich Null enthalten oder leer sein.

Um Optional für die Nullbehandlung in Ketten von Abrufen zu verwenden, können wir seine Verkettungsfunktionen mit der Methode map() nutzen.

Bedenken Sie das folgende Beispiel:

Optional.ofNullable(house)
        .map(house -> house.getFloor(0))
        .map(floorZero -> floorZero.getWall(WEST))
        .map(wallWest -> wallWest.getDoor())
        .map(door -> wallWest.getDoor());

Dieser Code erstellt eine Kette optionaler Objekte, die jeweils das Ergebnis des entsprechenden Get-Aufrufs darstellen.

Vorteile der Verwendung Optional

Die Verwendung von Optional bietet mehrere Vorteile:

  • Es werden keine Prüfungen durchgeführt Automatisch: Optional führt automatisch Nullprüfungen durch, sodass keine expliziten Nullprüfungen in Ihrem Code erforderlich sind.
  • Sichere Get-Aufrufe: Wenn einer der Get-Aufrufe null zurückgibt, ist das entsprechende Optional wird leer sein und NullPointerExceptions verhindern.
  • Fluent API: Die Verkettungsfunktionen von Optional bieten eine prägnante und lesbare Möglichkeit zur Handhabung Nullen in Ketten von Gets.

Schlussfolgerung

Wenn Sie es nicht vermeiden können, das Demeter-Gesetz zu brechen, ist die Verwendung von Optional ein dringend empfohlener Ansatz für eine sichere Navigation Ketten von „get“-Aufrufen. Es bietet eine elegante und effiziente Möglichkeit, mit Nullen umzugehen und stellt so die Robustheit und Zuverlässigkeit Ihres Codes sicher.

Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3