Java 與Stream::flatMap 的可選集成
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 🎜>
在Java 8 中,可以採用以下使用輔助方法的方法:以上是哪種 Java 可選方法最適合將物件映射到可選物件並透過 Stream::flatMap 檢索第一個非空結果?的詳細內容。更多資訊請關注PHP中文網其他相關文章!