Observer class must be declared abstract or implement an abstract method

若如初见. 提交于 2019-12-11 16:49:40

问题


I want to use RxAndroid and RxJava in my project. But as shown in the below code, in getAnimalsObserver() method, the following line:

return new Observer<String>

is underscored with a red line saying: //class must be either declared abstract or implement abstract method please let me know how to fix that error.

code: import rx.Observable; import rx.Observer; import rx.android.schedulers.AndroidSchedulers; import rx.schedulers.Schedulers;

//class must be either declared abstract or implement abstract method
private Observer<String> getAnimalsObserver() {
    return new Observer<String>() {
        @Override
        public void onSubscribe(Disposable d) {
            Log.d(TAG, "onSubscribe");
        }

        @Override
        public void onNext(String s) {
            Log.d(TAG, "Name: " + s);
        }

        @Override
        public void onError(Throwable e) {
            Log.e(TAG, "onError: " + e.getMessage());
        }

        @Override
        public void onComplete() {
            Log.d(TAG, "All items are emitted!");
        }
    };
}

回答1:


This is the Observer interface you are implementing:

public interface Observer<T> {

    void onCompleted();

    void onError(Throwable e);

    void onNext(T t);

}

As you can see, it's onCompleted() not onComplete().

Tip: With the cursor inside the body of your implementation class, press Ctrl+I, Android Studio IDE will show dialog with available class members to implement.



来源:https://stackoverflow.com/questions/51377777/observer-class-must-be-declared-abstract-or-implement-an-abstract-method

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!