我有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。理想情况下,您创建一个单独的模型来表示datadetail中的数据。但是作为一种快速技巧,您可以使用Pair

希望能帮助到你。

10-07 20:50