簡體   English   中英

Java 11:如何總結兩個Single <optional<> &gt; 在 java 中? </optional<>

[英]Java 11: How to summarize two Single<Optional<>> in java?

請幫忙,如何總結 java 11 中的兩個 Single<Optional>?

我正在使用 RxJava,但我認為這沒有任何意義。

例如:

Single<Optional<MonetaryAmount>> first = someMethod1(a, b);
Single<Optional<MonetaryAmount>> second = someMethod2(a, b);

我想做這樣的事情不是語法上而是邏輯上

Single<Optional<MonetaryAmount>> result = first + second;

我試圖做這樣的事情,但它在 java 11 中不起作用

Single<Optional<MonetaryAmount>> result = Stream.concat(first, second)
                                                .reduce(MonetaryAmount::sum);

你有什么想法嗎?

使用concatMapSinglemapOptional獲取當前值:

Observable<Single<Optional<MonetaryAmount>>> amounts = 
    Observable.fromArray(first, second);

amounts.concatMapSingle(v -> v)
.mapOptional(v -> v) // RxJava 3
.reduce(MonetaryAmount::sum)
;

對於 RxJava 2,使用 filter+map 組合:

.filter(Optional::isPresent)
.map(Optional::get)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM