由于某些原因,当我使用 java.util.Observable 对象调用 notifyObserver 方法时,我的观察者没有收到通知:
这是我的可观察对象:
public class ProjectManager extends Observable
{
...
public void updateProjects(String project, String pack, String source, String ARN)
{
...
if(newSource)
{
tempPack.add(tempSource);
System.out.println("Notify observers: " + this.countObservers());
this.notifyObservers();
}
...
}
我可以从我的输出中看到正在添加观察者但没有收到通知。
我的观察者对象看起来像这样:
public class IDE implements Observer
{
@Override
public void update(Observable o, Object arg) {
System.out.println("Notified");
}
由于某些奇怪的原因,可观察对象根本没有被通知。我在这里做错了什么吗?
最佳答案
你需要在notifyObservers
之前setChanged
关于Java 观察者模式不通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11315425/