如何将 lambda 用于自定义 SingleObserver

我有这个定制的 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->{});


潇湘沐
浏览 139回答 2
2回答

哆啦的时光机

您可以像这样使用 Rxjava single 而不是改造单个:你的界面:&nbsp; &nbsp; @GET("somehing")&nbsp; &nbsp;Single<UserWithToken> getUserWithTokenFromServer(@Query("something") String&nbsp; something);您的实施:apiClient.getUserWithTokenFromServer("123456")&nbsp; &nbsp; .subscribe(UserWithToken -> {&nbsp; &nbsp; &nbsp; &nbsp; // handle data fetched successfully and API call completed&nbsp; &nbsp; },Throwable::printStackTrace);
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java