[Java] benutze Optional anstelle von if (hoge! = Null) {...}

Ich wusste nicht, wie man Optional verwendet, aber ich verstand, dass es so etwas war.

Ich möchte die Methode von "hoge" nur ausführen, wenn die Variable "hoge" nicht "null" ist

Konventioneller Weg

python


if (hoge != null) {
    hoge.fuga();
}

Wie mit "Optional" zu tun

python


Optional
    .ofNullable(hoge)
    .ifPresent(o -> o.fuga());

Welches ist leichter zu sehen? : smile:

Wenn die Variable "hoge" nicht "null" ist, wird das Ergebnis der Methodenausführung von "hoge" zurückgegeben.

Konventioneller Weg

python


fugo = hoge != null ? hoge.fugo() : null;

Wie mit "Optional" zu tun

python


fugo = Optional
    .ofNullable(hoge)
    .map(o -> o.fugo())  // Optional<?>Wird also zurückgegeben
    .orElse(null);       //Lassen Sie orElse den Wert selbst oder den Standardwert zurückgeben (hier null)

Ist es einfacher, den ternären Operator auf dieser Ebene zu sehen? : smile:

Wenn die Variable "hoge" nicht "null" ist, rufen Sie die Methode "hoge" auf, und wenn das Ergebnis der Methode nicht "null" ist, rufen Sie die Methode weiter auf.

Ich weiß nicht, was es sagt. Schauen Sie sich den Code an.

Konventioneller Weg

python


instant = null;

if (hoge != null) {
    date = hoge.getDate();

    if (date != null) {
        instant = date.toInstant();
    }
}

Oder wie wäre es damit?

python


instant = hoge != null
    ? (hoge.getDate() != null
        ? hoge.getDate().toInstant()
        : null) 
    : null;

Wie mit "Optional" zu tun

instant = Optional
  .ofNullable(hoge)
  .map(o -> o.getDate())     
  .map(d -> d.toInstant())   
  .orElse(null);

Welches ist leichter zu sehen? : smile:

Recommended Posts

[Java] benutze Optional anstelle von if (hoge! = Null) {...}
[Java] Warum StringUtils.isEmpty () anstelle von String.isEmpty () verwenden?
[Null-Sicherheit] Kotlin Java-Vergleichsnotiz Richtige Verwendung der Null-Sicherheit
Verwendung von Java Optional
Verwenden Sie enum anstelle der int-Konstante
Grundlegende Verwendung von Java Optionaler Teil 1
[Java] Es kann glücklich sein, wenn der Rückgabewert der Methode, die null zurückgibt, Optional <> ist
Punkt 36: Verwenden Sie EnumSet anstelle von Bitfeldern
Punkt 37: Verwenden Sie EnumMap anstelle der ordinalen Indizierung
[Java] [Maven3] Zusammenfassung der Verwendung von Maven3
[Java] Erfahren Sie, wie Sie Optional richtig verwenden
Verwenden Sie jenv, um mehrere Java-Versionen zu aktivieren
[Java] Verwendung von final in der lokalen Variablendeklaration
Java Optionaler Typ
Java 8 studieren (optional)
JAVA NULL Checker
[Java] Verwenden Sie Collectors.collectingAndThen
[Java] Übersicht über Java
[Java] Optionales Memorandum
Java 9 Optional :: stream
Weglassen der mittleren Klammern in der if-Anweisung (Java Silver)
[Swift] Warum FlowLayout Delegate anstelle von Instanz verwenden sollte
Verwenden Sie Java-Lambda-Ausdrücke außerhalb der Stream-API
Durchsuchen Sie Klassenobjekte in Kotlin (anstelle der Java-Klasse name.class).
Zusammenfassung der Java-Kommunikations-API (1) Verwendung von Socket
Zusammenfassung der Java-Kommunikations-API (3) Verwendung von SocketChannel
Zusammenfassung der Java-Kommunikations-API (2) Verwendung von HttpUrlConnection
Verwendung von Abstract Class und Interface in Java richtig
Java: Verwenden Sie Stream, um den Inhalt einer Sammlung zu sortieren
JAWJAW ist praktisch, wenn Sie WordNet aus Java verwenden
Fassen Sie die zusätzlichen Elemente der optionalen Klasse in Java 9 zusammen