Использование RxJava для извлечения объекта, преобразования содержащего списка и использования списка
проблема высокого уровня, которую я пытаюсь решить, - это преобразование списка Foo
объекты, содержащиеся в извлеченном FooContainer
(наблюдаемый) в список FooBar
объекты, использующие RxJava.
моя (запутанная) попытка:
fooContainerObservable
.map(container -> container.getFooList())
.flatMap(foo -> transformFooToFooBar(foo))
.collect( /* What do I do here? Is collect the correct thing? Should I be using lift? */)
.subscribe(fooBarList -> /* Display the list */);
мое замешательство (или, по крайней мере, одна его точка) - это шаг, перемещающий сплющенный список обратно в список.
примечание: Я пытаюсь сделать это в приложении для Android.
1 ответов
toList
может собирать все элементы наблюдаемого в List
и излучать его. toList
может быть реализован с помощью collect
, но это намного проще, чем collect
. Для вашего примера это будет:
fooContainerObservable
.map(container -> container.getFooList())
.flatMap(foo -> transformFooToFooBar(foo))
.toList()
.subscribe(fooBarList -> /* Display the list */);