【发布时间】:2017-12-12 21:40:37
【问题描述】:
我需要返回 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;
}
【问题讨论】:
-
您在
observable的声明中缺少类型信息。当你提供它时会发生什么? -
这里引用的两种方法的类型是什么?
-
@BobDalgleish 在表达式“Observable
.zip”中根本找不到 zip 运算符 -
@OliverCharlesworth 抱歉,添加以下方法 getSchedules
标签: java android system.reactive rx-java2