识别 RxJava 中的发射可观察对象

Identify emitting observable in 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: ???"));

我需要如何更改代码才能确定哪个 Observable 发出了 subscribe() 子句中的每个项目?

怎么样:

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