Fassen Sie die zusätzlichen Elemente der optionalen Klasse in Java 9 zusammen

Einführung

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

zusätzliche Elemente von ifPresent

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

Stream hinzufügen

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 ". Sie müssen also grundsätzlich "flatmap" verwenden. Für diejenigen unter Ihnen, die Ihr Bestes mit map geben möchten, habe ich leicht nach einer einfachen Möglichkeit gesucht, String aus Stream zu konvertieren, war mir aber nicht sicher. Bei der Implementierung von "flatmap" dachte ich nicht, dass es hier implementiert werden sollte. Lass es uns gehorsam benutzen.

Hinzufügen oder Methode

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 " ist, ist es ein Bild, das im Fall von Null eine Ersatzvariable deklariert? Selbst wenn Sie einen etwas komplizierten Zustand beschreiben möchten, scheint es möglich zu sein, ihn mit "oder" präzise auszudrücken.

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

abschließend

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

Fassen Sie die zusätzlichen Elemente der optionalen Klasse in Java 9 zusammen
[Java] Löschen Sie die Elemente von List
Holen Sie sich das Ergebnis von POST in Java
Untersuchen Sie die Speichernutzung von Java-Elementen
Vergleichen Sie Elemente eines Arrays (Java)
Untersuchen Sie die Liste der Zeitzonen-IDs, die in der Java ZoneId-Klasse verfügbar sind
Die Geschichte des Schreibens von Java in Emacs
Erhöhen Sie dynamisch die Anzahl der Elemente in einem zweidimensionalen Java-Array (mehrdimensionales Array).
Die Geschichte des einfachen String-Vergleichs in Java
[Java] Behandlung von Java Beans in der Methodenkette
Über die Idee anonymer Klassen in Java
Die Geschichte des Lernens von Java in der ersten Programmierung
Messen Sie die Größe eines Ordners mit Java
Spüren Sie den Lauf der Zeit auch in Java
Ein kurzer Überblick über Java, das im Unterricht gelernt wurde
Importieren Sie Dateien derselben Hierarchie in Java
Erster Touch der Files-Klasse (oder Java 8)
[Java] Wo befindet sich die Implementierungsklasse der Annotation, die in BeanValidation vorhanden ist?
Rufen Sie die URL des HTTP-Umleitungsziels in Java ab
[Java] Sortieren Sie ArrayList nach Elementen Ihrer eigenen Klasse
Ein kurzer Überblick über Java, das in Klasse 4 gelernt wurde
[Ruby] Die Rolle von Indizes beim Lernen von Elementen in Arrays
Rufen Sie den Namen des Testfalls in der JUnit-Testklasse ab
[Java] Holen Sie sich die Datei unabhängig von der Umgebung in das JAR
Ein kurzer Überblick über Java, das in Klasse 3 gelernt wurde
Ein kurzer Überblick über Java, das in Klasse 2 gelernt wurde
Ändern Sie die Speicherqualität von JPEG-Bildern in Java
Verwendung von Abstract Class und Interface in Java richtig
[Java] Komparator der Collection-Klasse
Zusammenfassung der Java Math Klasse
Java-Implementierung von Tri-Tree
So erhalten Sie den Namen einer Klasse / Methode, die in Java ausgeführt wird
Wurde im Basisjahr der Java-Kalenderwoche durchgeführt
[Hinweis] Java Ausgabe der Summe von ungeraden und geraden Elementen
Eine kurze Erklärung der fünf Arten von Java Static
Ich habe versucht, die Grundlagen von Kotlin und Java zusammenzufassen
[Java] Versuchen Sie, die Elemente der Json-Zeichenfolge mithilfe der Bibliothek zu bearbeiten
Zählen Sie die Anzahl der Stellen nach dem Dezimalpunkt in Java
So leiten Sie den letzten Tag des Monats in Java ab
[Java] Abrufen von Datumsinformationen 10 Tage später in Millisekunden in der Datumsklasse
Errate den Zeichencode in Java
Untersuchen Sie die Systeminformationen der AWS Lambda-Betriebsumgebung in Java
Verschiedene Methoden der Java String Klasse
[Java] Ordnen Sie die Daten des vergangenen Montags und Sonntags der Reihe nach an
[Java Edition] Geschichte der Serialisierung
Geben Sie den Java-Speicherort in eclipse.ini an
Geben Sie die Differenz zwischen jedem Feld zweier Objekte in Java aus
Behandeln Sie die Geschäftslogik für eine Reihe von Entitäten in einer Java-Klasse
Entpacken Sie die Zip-Datei in Java
Grundlegende Verwendung von Java Optionaler Teil 1
StringBuffer- und StringBuilder-Klasse in Java
Mechanismus und Merkmale der in Java häufig verwendeten Collection-Implementierungsklasse
Verschiedene Methoden der String-Klasse
Liste der in Java 9 hinzugefügten Mitglieder
Die in /lib/calendars.properties von Java jre festgelegte Millisekunde ist UTC
Rufen Sie die öffentliche URL der privaten Datei von Flickr in Java ab
Lesen Sie die ersten 4 Bytes der Java-Klassendatei und geben Sie CAFEBABE aus
Denken Sie an die 7 Regeln von Optional
Lassen Sie uns eine TODO-App in Java 5 erstellen. Schalten Sie die Anzeige von TODO um
Liste der in Java 9 hinzugefügten Typen