【发布时间】:2015-04-03 12:33:25
【问题描述】:
我是响应式编程的新手,并且有这种无法编译的方法,我无法正确使用,
public Observable<Data> findData(long templateId) {
..
..
return Observable.zip(templateObs, dataObs, (templateObj, dataObj) -> {
try {
switch(model) {
case SINGLE: {
..
..
return new Data();
}
case TOURNAMENT: {
// compilation error on the entire .zip block :
// Type mismatch: cannot convert from Observable<Object> to Observable<Data>
return Observable.zip(obs1, obs2, obs3, obs4, (data, data2, data3, data4) -> {
..
..
return new Data(data1,data2,data3,data4);
}).flatMap(results -> results);
}
}
}catch(DataException e) {
log.error(e);
}
return null;
});
}
由于某种原因,内部返回 .zip 返回 Observable 而不是 Observable - 这会导致编译错误...
如果我从内部 .zip 中删除“返回”,那么它会编译。
【问题讨论】:
标签: java system.reactive rx-java