[英]Observer pattern issues Java
我試圖在Java中實現一個簡單的觀察者模式,但遇到了一個似乎無法解決的問題。 我有以下幾點:
public interface Observable {
public void addView(Observer view);
public void removeView(Observer view);
public void notifyView();
public Object getUpdate(Observer view);
}
public class Data implements Observable {
//List to hold all of the views observing data changes.
private ArrayList<Observer> views = new ArrayList<Observer>();
private ArrayList<Integer> data = new ArrayList<Integer>();
...
@Override
public void notifyView() {
for (Observer view: views){
//issue here
view.update(data);
}
}
...
}
當我嘗試調用view.update()方法時,我的notifyView()方法出現錯誤。 我得到的錯誤是:
The method update(Observable, Object) in the type Observer is not applicable for the arguments (ArrayList<Integer>)
我不明白這一點,因為我有Observer接口,並且類設置如下:
public interface Observer {
public void update(ArrayList<Integer> data);
}
public class View implements Observer{
@Override
public void update(ArrayList<Integer> data) {
// TODO Auto-generated method stub
}
}
我曾嘗試閱讀其他文章,但沒有任何幫助。 我是否忽略了導致此問題的某些內容?
您的代碼不是使用Observer類,而是使用Java的Observer類
https://docs.oracle.com/javase/7/docs/api/java/util/Observer.html
您應該將Observer接口名稱重命名為另一個,以查看問題。 例如MyObserver。 您與JDK標准Observer接口(請參閱Data.java導入部分)和Observer接口發生沖突。 接口名稱更加准確。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.