Это не прямой эквивалент, но вы можете написать повторно используемые части цепочек операторов, написав Function<Flux, Publisher>
, который вы передаете либо compose
(применяя функцию для каждого входящего абонента, учитывая динамическое поведение вfunction) или transform
(применяя функцию во время создания цепочки операторов Flux
, один раз).
Например:
Function<Flux<String>, Flux<Integer>> letterPerWordCount = f -> f
.flatMap(sentence -> Flux.fromArray(sentence.split(" "))
.map(String::length);
Flux<String> mySentenceSource;
Flux<Integer> letterCount = mySentenceCount.transform(letterPerWordCount);