观察者类必须声明为抽象或实现抽象方法

时间:2018-07-17 09:26:39

标签: android rx-java rx-java2 rx-android

我想在我的项目中使用RxAndroid和RxJava。但是如下面的代码所示,在getAnimalsObserver()方法中,以下行:

return new Observer<String>

用红线强调://类必须声明为抽象或实现抽象方法 请让我知道如何解决该错误。

代码:     导入rx.Observable;     导入rx.Observer;     导入rx.android.schedulers.AndroidSchedulers;     导入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 个答案:

答案 0 :(得分:1)

这是您正在实现的Observer接口:

public interface Observer<T> {

    void onCompleted();

    void onError(Throwable e);

    void onNext(T t);

}

如您所见,它是onCompleted()而不是onComplete()

提示:将光标放在实现类的主体内,按Ctrl+I,Android Studio IDE将显示一个对话框,其中包含要实施的可用类成员。