为了账号安全,请及时绑定邮箱和手机立即绑定

如何将 lambda 用于自定义 SingleObserver

如何将 lambda 用于自定义 SingleObserver

潇湘沐 2021-07-02 04:31:18
我有这个定制的 SingleObserver 类:public abstract class SubscribeWithView<T> implements SingleObserver<T>,Disposable {    private WeakReference<RootView> rootView;    /**     * <p style="color:blue;">set view from presenter</p>     *     * @param rootView     *{@link RootView}     */    public SubscribeWithView(RootView rootView) {        this.rootView = new WeakReference<>(rootView);    }    ...}所以我在 API 存储库接口类中使用以下代码:@POST(ApiAddress.USER_LOGIN)    Single<Response<UserWithToken>> userLogin(@Body UserLogin_request userLogin_request);我的问题是:如何更改此代码:.subscribe(new SubscribeWithView<Response<UserWithToken>>(view) {                        @Override                        public void onSuccess(Response<UserWithToken> response) {                        }                        @Override                        public void onError(Throwable e) {                            super.onError(e);                        }像这样 lambda 吗?apiRepository.userLogin(request)                .subscribe(new SubscribeWithView<Response<UserWithToken>>(view) {                    response->{},e->{});
查看完整描述

2 回答

?
哆啦的时光机

TA贡献1779条经验 获得超6个赞

您可以像这样使用 Rxjava single 而不是改造单个:


你的界面:


    @GET("somehing")

   Single<UserWithToken> getUserWithTokenFromServer(@Query("something") String  something);

您的实施:


apiClient.getUserWithTokenFromServer("123456")

    .subscribe(UserWithToken -> {

        // handle data fetched successfully and API call completed

    },Throwable::printStackTrace);


查看完整回答
反对 回复 2021-07-07
  • 2 回答
  • 0 关注
  • 138 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信