Rumah > Java > javaTutorial > Pendekatan Pilihan Java manakah yang Terbaik untuk Memetakan Objek kepada Objek Pilihan dan Mendapatkan Hasil Bukan Kosong Pertama Melalui Strim::flatMap?

Pendekatan Pilihan Java manakah yang Terbaik untuk Memetakan Objek kepada Objek Pilihan dan Mendapatkan Hasil Bukan Kosong Pertama Melalui Strim::flatMap?

Patricia Arquette
Lepaskan: 2024-10-24 03:03:28
asal
382 orang telah melayarinya

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

Integrasi Pilihan Java dengan Stream::flatMap

Pemaju Java mencari cara ringkas untuk memetakan senarai objek ke objek Pilihan dan mendapatkan semula hasil pertama bukan kosong menggunakan API Stream Java 8 mungkin menghadapi cabaran.

Pendekatan intuitif untuk menggunakan things.stream().flatMap(this::resolve).findFirst() tidak boleh dilaksanakan kerana Optional tidak mempunyai kaedah stream(). Ini telah membawa kepada penerokaan penyelesaian alternatif:

Java 16

Java 16 memperkenalkan Stream.mapMulti, membolehkan penyelesaian ringkas berikut:

<code class="java">Optional<Other> result =
  things.stream()
        .map(this::resolve)
        .<Other>mapMulti(Optional::ifPresent)
        .findFirst();</code>
Salin selepas log masuk

Java 9

Java 9 memperkenalkan Optional.stream, membenarkan penyelesaian yang lebih mudah ini:

<code class="java">Optional<Other> result =
  things.stream()
        .map(this::resolve)
        .flatMap(Optional::stream)
        .findFirst();</code>
Salin selepas log masuk

Java 8

Dalam Java 8, pendekatan berikut menggunakan kaedah pembantu boleh digunakan:

<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>
Salin selepas log masuk

Atas ialah kandungan terperinci Pendekatan Pilihan Java manakah yang Terbaik untuk Memetakan Objek kepada Objek Pilihan dan Mendapatkan Hasil Bukan Kosong Pertama Melalui Strim::flatMap?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan