Как конвертировать вложенный список в Mono в Flux? - PullRequest
1 голос
/ 17 мая 2019

Я очень новичок в реактивных потоках, Может кто-нибудь помочь мне преобразовать Mono<MyClass> в Flux<Integer>

Я пробовал что-то вроде этого -

Flux<Integer> myMethod(Mono<MyClass> homeWork) {
    return homeWork.map(h -> h.multiplicands)
              .flatMapMany(Flux::fromIterable).map(m -> h*m);
}
public class MyClass{
    int multiplier;
    List<Integer> multiplicands;
}

Я ожидаю результата умножения * (каждого) множителя в формате Flux<Integer>.

Можете ли вы помочь мне с правильным способом сделать это?

1 Ответ

2 голосов
/ 17 мая 2019

Преобразуйте экземпляр MyClass в Stream<Integer>, который содержит умноженные целые числа, а затем превратите Mono<Stream<Integer>> в Flux<Integer>:

Flux<Integer> myMethod(Mono<MyClass> homeWork) {
  return homeWork
           .map(hw -> hw.multiplicands.stream().map(m -> m * hw.multiplier))
           .flatMapMany(Flux::fromStream);
}
...