Da ich es zum Zeitpunkt von Java 8 geschrieben habe, eine Seite, die die zusätzlichen Elemente in Java 9 zusammenfasst Es ist keine so schwierige Funktion, daher denke ich, dass es mit den Artikeln, die ich bereits habe, in Ordnung ist, aber ich lerne, also ist es mir egal.
Den Artikel, den ich für Java 8 geschrieben habe, finden Sie unter hier.
JavaDoc http://download.java.net/java/jdk9/docs/api/java/util/Optional.html
Diesmal wurde ifPresentOrElse
hinzugefügt.
Der in Java 8 vorhandene False-Fall von "ifPresent" kann jetzt mit einer Methode abgeschlossen werden.
Optional<String> optional = Optional.ofNullable("");
Optional<String> optional2 =Optional.ofNullable(null);
optional.ifPresentOrElse(t -> System.out.println(true), () -> System.out.println(false));
optional2.ifPresentOrElse(t -> System.out.println(true), () -> System.out.println(false));
Ergebnis:
true
false
Ab diesem Zeitpunkt ist es möglich, die Optinal-Klasse direkt neu zu schreiben, um sie zu streamen.
Optional.ofNullable(null).stream().forEach(System.out::println);
Ergebnis:
Beachten Sie, dass der Typ bei Null nur bekannt sein kann, wenn er auf Objekttyp festgelegt ist.
OK List<Object> optional = Optional.ofNullable(null).stream().collect(Collectors.toList());
OK List<String> optional = Optional.ofNullable((String)null).stream().collect(Collectors.toList());
NG List<String> optional = Optional.ofNullable(null).stream().collect(Collectors.toList());
Wenn Sie den Listentyp erfolgreich in Stream konvertieren möchten, müssen Sie ihn mit flatmap
in Stream konvertieren.
List<String> list = List.of("aaa", "bbb");
List<String> list2 = null;
Optional.ofNullable(list).stream().flatMap(t -> t.stream()).forEach(System.out::println);
Optional.ofNullable(list2).stream().flatMap(t -> t.stream()).forEach(System.out::println);
Ergebnis:
aaa
bbb
Wenn es sich um "map" handelt, ist es nur vom Typ "Stream map
geben möchten, habe ich leicht nach einer einfachen Möglichkeit gesucht, String aus Stream
Diese Methode führt nichts aus, wenn der Wert vorhanden ist, und wird nur ausgeführt, wenn er Null ist.
Da der Rückgabewert "Optional
System.out.println(Optional.ofNullable("aaa").or(() -> Optional.of("bbb")).get());
System.out.println(Optional.ofNullable(null).or(() -> Optional.of("bbb")).get());
Ergebnis:
aaa
bbb
Das JavaDoc sieht so aus, als ob diese drei Funktionen hinzugefügt wurden. Ich habe den Versionshinweis nicht gesehen, weil er problematisch war, also werde ich ihn hinzufügen, wenn es noch etwas gibt.
Recommended Posts