我有Data和DataDetail类,每个类都包含比它们高的数据
不包含。
我有从后端获取的List类,
具有具有id字段的Data我可以请求DataDetail,而DataDetail具有一些在Data对象中为null的信息,因此我可以从DataDetail中获取并在Data类中进行设置。
`fetchData()
.toFlowable()
.flatMapIterable(datas->datas).map(new Function<Data, Flowable<DataDetail>>() {
@Override
public Flowable<DataDetail>`apply(@io.reactivex.annotations.NonNull Data data) throws Exception {
return
fetchDataDetail(data()).toFlowable();
}
}).map(new Function<DataDetail, Flowable<Data>>() {
@Override
public Flowable<DataDetail> apply(@io.reactivex.annotations.NonNull DataDetail dataDetail) throws Exception {
return //I want to have access data and dataDetail object }
}).toList();
.map()吗?在地图中作为参数,我得到了Flowable的DataDetail对象,
可流动,但我需要访问Data和DataDetail才能从DataDetail中获取一些数据并在Data对象中进行设置
最佳答案
我相信这就是您的api返回的内容。
api.getList() // this returns a Single<List<Data>>
如果正确,那可能就是您要达到的目标。
Single<List<Pair<Data,Detail>>> dataSingle = api.getList()
.toFlowable()
.flatMap(Flowable::fromIterable) // Convert the list to single emissions
.flatMap(data -> {
// Make api call to get details
return api.getDetails(data.getId())
.flatMap(dataDetails -> {
return Flowable.just(Pair.create(data,dataDetail));
});
}).toList();
显然,如果您需要将其转换为
Flowable
,则可以轻松地使用toFlowable
进行操作。Pair
来自android.support.v4.util.Pair
。理想情况下,您创建一个单独的模型来表示data
和detail
中的数据。但是作为一种快速技巧,您可以使用Pair
希望能帮助到你。