当我的http(204)是空的时候,我得到了一个运行时异常。
它似乎不能反序列化null/空的http响应。有没有办法在不引发异常的情况下做到这一点?
由于我使用了spring,它将我的事务标记为回滚,我希望避免这种情况,因为获取一个空的正文并不是一个错误。
Single<myobject> cp = cpApi.findOne(myparam);
try {
return cp.blockingGet();
} catch(RuntimeException t) {
throw new RuntimeException(t.getMessage());
}
java.lang.ClassCastException:无法在io.reactivex.internal.observers.ConsumerSingleObserver.onSuccess(ConsumerSingleObserver.java:59) at io.reactivex.internal.operators.observable.ObservableSingleSingle$SingleElementObserver.onComplete(ObservableSingleSingle.java:111) at retrofit2.adapter.rxjava2.BodyObservable$BodyObserver.onComplete(BodyObservable.java:66) at retrofit2.adapter.rxjava2.CallExecuteObservable.subscribeActual(CallExecuteObservable.java:48)
将java.lang.String强制转换为com.myproject.model.myobject
发布于 2018-05-31 08:18:24
我想通了。这不是最优雅的解决方案,但它是可行的。
myobject notfound = new myobject();
Single<myobject> cp = cpApi.findOne(myparam);
myobject r = cp.onErrorReturnItem(notfound).blockingGet();
if(r.equals(notfound))
return null;
return r;
https://stackoverflow.com/questions/50613890
复制相似问题