我有一个填充一些数据的服务:
service.getMyPojo1Parameters(this, intent);
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(params -> {
onMyPojoParametersUpdated(params.first);
}, throwable -> {
// showError
});
不幸的是,params
永远不会有效,它会立即跳转到showError
部分?以下是getMyPojo1Parameters()
方法的实现:
public Observable<Pair<MyPojo1, Boolean>> getMyPojo1Parameters(Context context, Intent aIntent) {
Observable<Pair<MyPojo1, Boolean>> resolvePojoParamsObservable = resolvePlace(context, data1, data2);
Observable<Pair<MyPojoExtended, Boolean>> aSide = resolvePojoParamsObservable
.flatMap(myPojo1BooleanPair -> {
// stuff
});
resolvePojoParamsObservable = resolvePlace(context, data3, data3);
Observable<Pair<MyPojoExtended, Boolean>> bSide = resolvePojoParamsObservable
.flatMap(myPojo1BooleanPair -> {
// stuff
});
Observable<Pair<MyPojo1, Boolean>> zip = Observable.zip(aSide, bSide, (a, b) -> {
MyPojo1 myPojo1 = new MyPojo1(a.first, b.first, currentDate, currentTime);
boolean b = a.second || b.second;
return Pair.create(myPojo1, b);
}
);
return zip;
}
我认为zip方法是错误的:return Pair.create(MyPojo1, b);
处的断点永远不会被调用,而return zip;
似乎有效且不为空。
Timber.e logcat或throwable:
java.lang.NullPointerException:尝试调用虚方法 &#39; java.lang.Double com.ralfi.example.models.Location.realmGet $ lat()&#39;上 空对象引用
03-22 16:20:31.683 29377-29377 / com.ralfi.example E / ResultMyPojoActivity:&gt; at com.ralfi.example.utils.MyRestService.lambda $ getMyPojo1Parameters $ 0 $ MyRestService(MyRestService.java:122)
03-22 16:20:31.683 29377-29377 / com.ralfi.example E / ResultMyPojoActivity:at com.ralfi.example.utils.MyRestService $$ LAMBDA $ 0.apply(未知 源:0)