Die folgenden drei Methoden können beim Schreiben der Verarbeitung verwendet werden, wenn in Java Optional ein Wert vorhanden ist / nicht vorhanden ist.
Optional.isPresent()
Optional.ifPresent()
Optional.ifPresentOrElse ()
(Java 9 oder höher)Ich dachte über meine eigene Richtlinie nach, welche Methode in welchem Fall angewendet werden sollte.
Optional.isPresent() "Optional.isPresent ()" ist eine Methode, die "true" zurückgibt, wenn der Wert vorhanden ist, "false", wenn dies nicht der Fall ist. In Kombination mit der if ~ else-Anweisung kann die herkömmliche Nullprüfungssyntax fast unverändert ersetzt werden. Eine solche Verwendung wird jedoch auch als ** "nur Ersetzen der Nullprüfung, es macht keinen Sinn, Optional zu verwenden" ** bezeichnet.
final Optional<String> foo = Optional.ofNullable("foo");
if (foo.isPresent()) {
System.out.println("foo=" + foo.orElse(""));
} else {
System.out.println("foo is null");
}
Optional.ifPresent()
Optional.ifPresent ()
ist eine Methode, die die durch das Argument angegebene Funktion (Consumer) ausführt, wenn der Wert vorhanden ist.
Es gibt eine Einschränkung, dass die Verarbeitung, wenn der Wert nicht vorhanden ist, nicht beschrieben werden kann und ** Variablen außerhalb des Blocks in der Funktion ** nicht neu geschrieben werden können.
final Optional<String> foo = Optional.ofNullable("foo");
foo.ifPresent(f -> System.out.println("foo=" + f));
Optional.ifPresentOrElse()
Optional.ifPresentOrElse ()
führt die erste vom Argument angegebene Funktion (Consumer) aus, wenn der Wert vorhanden ist, und führt die zweite vom Argument angegebene Funktion (Runnable) aus, wenn sie nicht vorhanden ist. Die Methode.
Sie können die Verarbeitung beschreiben, wenn der Wert nicht vorhanden ist, es gibt jedoch eine Einschränkung, dass ** Variablen außerhalb des Blocks in der Funktion ** nicht neu geschrieben werden können.
final Optional<String> foo = Optional.ofNullable("foo");
foo.ifPresentOrElse(f -> System.out.println("foo=" + f), () -> System.out.println("foo is null"));
Es ist ein Flussdiagramm, welche Methode in welchem Fall verwendet werden sollte.
<! - TODO: Erstellen Sie das Flussdiagramm mit draw.io-> neu
Grundsätzlich scheint es sinnvoll zu sein, "Optional.ifPresent ()" zu verwenden und andere Methoden nur zu verwenden, wenn Sie Variablen außerhalb des Blocks neu schreiben möchten oder wenn Sie die Verarbeitung beschreiben möchten, wenn der Wert nicht vorhanden ist.
Recommended Posts