Stream::FlatMap과 Java 선택적 통합
객체 목록을 Optional 객체에 매핑하고 검색하는 간결한 방법을 찾는 Java 개발자 Java 8의 Stream API를 사용하는 첫 번째 비어 있지 않은 결과는 문제에 직면할 수 있습니다.
things.stream().FlatMap(this::resolve).findFirst()를 사용하는 직관적인 접근 방식은 Optional에 스트림() 메서드. 이로 인해 대체 솔루션이 모색되었습니다.
Java 16
Java 16에서는 Stream.mapMulti를 도입하여 다음과 같은 간결한 솔루션을 구현했습니다.
<code class="java">Optional<Other> result = things.stream() .map(this::resolve) .<Other>mapMulti(Optional::ifPresent) .findFirst();</code>
Java 9
Java 9에서는 Optional.stream을 도입하여 이보다 간단한 솔루션을 제공했습니다.
<code class="java">Optional<Other> result = things.stream() .map(this::resolve) .flatMap(Optional::stream) .findFirst();</code>
Java 8
Java 8에서는 도우미 메소드를 사용하는 다음 접근 방식을 사용할 수 있습니다.
<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>
위 내용은 객체를 선택적 객체에 매핑하고 Stream::FlatMap을 통해 비어 있지 않은 첫 번째 결과를 검색하는 데 가장 적합한 Java 선택적 접근 방식은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!