如何 return Observable 与特定类型?

How to return Observable with specific type?

我需要return Observable指定泛型类型。但是在 zip 运算符之后我只得到 Observable,没有任何类型。

如何将通常的 Observable 转换为 Observable<T>?也许有一些 rx 运算符可以做到这一点?

代码示例:

public Observable<Schedule> updateSchedules(final List<ScheduleInfo> schedulesInfo) {
    List<Observable<List<ScheduleItem>>> observables = makeScheduleTasks(schedulesInfo);
    Observable observable = Observable.zip(observables, objects -> getSchedules(schedulesInfo, objects));
    return (Observable<Schedule>)observable; //How to cast?
}


private List<Schedule> getSchedules(List<ScheduleInfo> schedulesInfo, Object[] objects) {
        if(objects.length == schedulesInfo.size()){
            List<Schedule> schedules = new ArrayList<>(schedulesInfo.size());
            for (int i = 0; i < schedulesInfo.size(); i++) {
                Object object = objects[i];
                schedules.add(new Schedule(schedulesInfo.get(i), (List<ScheduleItem>) object));
            }
            return schedules;
        }
        return null;
    }

您需要在编译器可以使用的地方提供类型信息:

public Observable<Schedule> updateSchedules(final List<ScheduleInfo> schedulesInfo) {
    List<Observable<List<ScheduleItem>>> observables = makeScheduleTasks(schedulesInfo);
    Observable<Schedule> observable = Observable.zip(observables, objects -> getSchedules(schedulesInfo, objects));
    return observable;
}

应该可以正常工作,只要 getSchedules() returns 一个 Schedule.