我想要解决的高级问题是将使用Rx
Java的FooContainer(Observable)中包含的Foo对象列表转换为FooBar对象的列表.
我(困惑)的尝试:
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应用程序中执行此操作.
解决方法
toList可以将Observable的所有项目收集到列表中并发出. toList可以使用collect来实现,但它比收集容易得多.例如,它将是:
fooContainerObservable .map(container -> container.getFooList()) .flatMap(foo -> transformFooToFooBar(foo)) .toList() .subscribe(fooBarList -> /* Display the list */);