我想在我的项目中使用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!");
}
};
}
答案 0 :(得分:1)
这是您正在实现的Observer
接口:
public interface Observer<T> {
void onCompleted();
void onError(Throwable e);
void onNext(T t);
}
如您所见,它是onCompleted()
而不是onComplete()
。
提示:将光标放在实现类的主体内,按Ctrl+I
,Android Studio IDE将显示一个对话框,其中包含要实施的可用类成员。