我有一个数据提供程序,我可以在其中运行看起来像这样的查询来获取价格。请假设已定义getPrices
。
void batchGet(String[] s,ObservableEmitter<Map<String,Double> y){
List<List<String>> prts = Lists.partition(Lists.newArrayList(s), BATCH_SIZE);
for(List<String>batchList : prts ) {
String[] batch = new String[batchList.size()];
batchList.toArray(batch);
try {
Map<String, Double> res = getPrices(batch);
y.onNext(res );
} catch (IOException e) {
y.onError(e);
}
}
y.onComplete();
}
我使用以下代码调用上面的方法:
Observable<Quote> ret = Observable.create(y -> {
batchGet(symbols, y)});
ret.subscribe(q -> saveQuotes(q));
之后,我注意到NullPointerException
时有一个y.onNext(...)
因y==null
而被称为。我做错了什么?
谢谢