Heim > Java > javaLernprogramm > Hauptteil

Welcher optionale Java-Ansatz eignet sich am besten zum Zuordnen von Objekten zu optionalen Objekten und zum Abrufen des ersten nicht leeren Ergebnisses über Stream::flatMap?

Patricia Arquette
Freigeben: 2024-10-24 03:03:28
Original
287 Leute haben es durchsucht

Which Java Optionals Approach Is Best for Mapping Objects to Optional Objects and Retrieving First Non-Empty Result Via Stream::flatMap?

Optionale Java-Integration mit Stream::flatMap

Java-Entwickler suchen nach einer übersichtlichen Möglichkeit, eine Liste von Objekten optionalen Objekten zuzuordnen und diese abzurufen Das erste nicht leere Ergebnis mit der Stream-API von Java 8 kann auf eine Herausforderung stoßen.

Der intuitive Ansatz der Verwendung von Things.stream().flatMap(this::resolve).findFirst() ist nicht durchführbar, da Optional ein fehlt stream()-Methode. Dies hat zur Erforschung alternativer Lösungen geführt:

Java 16

Java 16 führte Stream.mapMulti ein und ermöglichte die folgende prägnante Lösung:

<code class="java">Optional<Other> result =
  things.stream()
        .map(this::resolve)
        .<Other>mapMulti(Optional::ifPresent)
        .findFirst();</code>
Nach dem Login kopieren

Java 9

Java 9 führte Optional.stream ein und ermöglichte diese einfachere Lösung:

<code class="java">Optional<Other> result =
  things.stream()
        .map(this::resolve)
        .flatMap(Optional::stream)
        .findFirst();</code>
Nach dem Login kopieren

Java 8

In Java 8 kann der folgende Ansatz mithilfe einer Hilfsmethode verwendet werden:

<code class="java">Optional<Other> result =
  things.stream()
        .map(this::resolve)
        .flatMap(Optional::ofNullable)
        .findFirst();

// Helper method that converts Optional<T> to Stream<T>
private static <T> Stream<T> streamOptional(Optional<T> optional) {
  return optional.isPresent() ? Stream.of(optional.get()) : Stream.empty();
}</code>
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWelcher optionale Java-Ansatz eignet sich am besten zum Zuordnen von Objekten zu optionalen Objekten und zum Abrufen des ersten nicht leeren Ergebnisses über Stream::flatMap?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!