Skip to content

can't resolve method 'subscribe (org.reactivestreams.Subscribe<>) #5533

@thedayisantherday

Description

@thedayisantherday

when I used "observable.subscribe(subscriber);", it show can't resolve method 'subscribe (org.reactivestreams.Subscribe<>). But when I used "observable.subscribe(observable);", it is right. My code is as follows:

               
                Map<String, String> paramMap = new HashMap<>();
                paramMap.put("user_name", "guojinjin");
                paramMap.put("user_password", "1");
                paramMap.put("user_language", "ZHS");
                paramMap.put("is_ipad", "N");
                paramMap.put("is_mobile", "Y");

                Retrofit retrofit= new Retrofit.Builder()
                        .baseUrl("http://211.149.247.188/")
                        //增加返回值为String的支持
                        .addConverterFactory(ScalarsConverterFactory.create())
                        //增加返回值为Gson的支持(以实体类返回)
                        .addConverterFactory(GsonConverterFactory.create())
                        //增加返回值为Oservable<T>的支持
                        .addCallAdapterFactory(RxJava2CallAdapterFactory.create())
                        .build();

                TestService testService = retrofit.create(TestService.class);
                Observable<TestModel> observable = testService.getTestModel(paramMap);
                Subscriber<TestModel> subscriber = new Subscriber<TestModel>() {
                    @Override
                    public void onSubscribe(Subscription s) {

                    }

                    @Override
                    public void onNext(TestModel course) {
                        Log.d("onNext", course.getEncryted_session_id());
                    }

                    @Override
                    public void onError(Throwable t) {

                    }

                    @Override
                    public void onComplete() {

                    }
                };
                observable.subscribeOn(Schedulers.newThread()).subscribe(subscriber);

                Observer observer = new Observer<TestModel>() {
                    @Override
                    public void onSubscribe(@NonNull Disposable d) {
                        Log.i("onSubscribe", "onSubscribe");
                    }

                    @Override
                    public void onNext(TestModel testModel) { // 上面 subscriber.onNext(result)在这里回调
                        Log.i("onNext", testModel.getEncryted_session_id()+testModel.isSuccess());
                    }

                    @Override
                    public void onError(Throwable e) {
                        Log.i("onError", e.toString());
                        e.printStackTrace();
                    } // 上面subscriber.onError(new Throwable(msg))在这里回调

                    @Override
                    public void onComplete() {
                        Log.i("onComplete", "onComplete");
                    }
                };
                observable.subscribeOn(Schedulers.newThread()).subscribe(observer);

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions