1
我有一個網絡requst:我怎樣才能提取的onError rxjava的方法,通過使用lambda
userApi.getUserInfoByUid (AuthUtils.getUid (ctx), AuthUtils.getToken (ctx))
.doOnNext (u -> saveToCache (u))
.observeOn (AndroidSchedulers.mainThread())
.subscribe (u -> {
if (updateListener != null)
updateListener.onUpdate (u);
},e->{
Toast.makeText (ctx,"network error",Toast.LENGTH_SHORT).show();
});
你知道,很多要求這倆網絡錯誤,所以我提取的OnError()方法。如:
abstract class Mysubscrib<T> extends Subscriber<T>{
@Override
public void onCompleted() {
//do nothing
}
@Override
public void onError(Throwable e) {
Toast.makeText (ctx,"network error",Toast.LENGTH_SHORT).show();
}
}
userApi.getUserInfoByUid (AuthUtils.getUid (ctx), AuthUtils.getToken (ctx))
.doOnNext (u -> saveToCache (u))
.observeOn (AndroidSchedulers.mainThread())
.subscribe (new Mysubscrib<UserInfo>() {
@Override
public void onNext(UserInfo userInfo) {
if (updateListener != null)
updateListener.onUpdate (userInfo);
}
});
,但如果我這樣做,我不能用的λ,它的感覺bad.how我可以使用:
userApi.getUserInfoByUid (AuthUtils.getUid (ctx), AuthUtils.getToken (ctx))
.doOnNext (u -> saveToCache (u))
.observeOn (AndroidSchedulers.mainThread())
.subscribe (u->{
if (updateListener != null)
updateListener.onUpdate (u);
});
可以看到[在GitHub的這個示例](HTTPS:/ /github.com/CabezasGonzalezJavier/HelloRxJavaRetrolambda)和[本博客](http://thedeveloperworldisyours.com/android/rxjava-retrolambda/#sthash.z5AT4BS4.dpbs)開心代碼!!! – Cabezas