如何从Observer类中的Observable类访问方法/实例,其中方法/实例不是被观察的对象。
例如,如果这些getter方法在我的Observable类中,但只有一本书被观察,我将如何访问我的Observer类中的名称和存储(即在update()方法中)?
public class MethodEx extends Observable {
...
public String getName(){
return this.name;
}
public String getBook(){
return this.book;
}
public String getStore(){
return this.store;
}
}
答案 0 :(得分:2)
您通常会将观察到的对象与事件一起传递。这在例如使用ChangeListener
的ChangeEvent
中完成。 ChangeEvent
有getSource
方法,可以告知哪个对象已更改。
翻译成您的术语,您可以
public String setBook(Book book) {
this.book = book;
for (UpdateListener listener : listeners)
listener.updated(new UpdateEvent(this));
}