我在订阅方法中遇到了一个强制转换问题,我不知道为什么新的Observer会出现这个问题。
Observable<GradeModel> getGrade = retrofit
.create(GradeService.class)
.getGrade()
.subscribeOn(Schedulers.newThread())
.observeOn(AndroidSchedulers.mainThread())
.map(model -> {
// transform model
DecimalFormat grades = (DecimalFormat) model.getGrades();
return grades;
})
.subscribe(new Subscriber<DecimalFormat>() {
@Override
public void onCompleted() {
}
@Override
public void onError(Throwable e) {
Log.i(TAG, "onError method of observer");
}
@Override
public void onNext(DecimalFormat grades) {
mainPresenter.setListGrades(grades);
}
});
必需: rx.Observable 实测: rx.Subscription
答案 0 :(得分:1)
直到.subscribe(...)
为Observable
。但订阅后,它会返回一个Subscription
实例,可用于取消订阅。
发生异常是因为您将此Subscription
强制转换为Observable
,尽管它们完全不相关。
在不知道你对该变量的意图的情况下,很难说出正确的代码是什么。