识别RxJava中可观察到的发射

问题描述

我有一个Observable数组,每个数组都可能产生相同的元素。然后,我使用flatMap()合并所有可观察对象,并订阅得到的可观察对象:

Observable<Integer> o1 = Observable.range(0,5);
Observable<Integer> o2 = Observable.range(0,5);
Observable<Integer> o3 = Observable.range(0,5);
        
Observable.fromArray(o1,o2,o3)
     .flatMap(o -> o)    // merge outputs from all observables
     .subscribe(item -> Log.i(TAG,"Item: " + item + " Observable id: ???"));

我该如何更改代码,以便确定在subscribe()子句中,哪个Observable发出了每个项目?

解决方法

怎么样:

Observable<Item> o1 = Observable.range(0,5).map(i -> new Item(i,"o1"));
Observable<Item> o2 = Observable.range(0,"o2"));
Observable<Item> o3 = Observable.range(0,"o3"));