1.在一个extends Observable类的类中需要调用this.setChanged();方法,
还得调用this.notifyObservers(
arg);可以带参数,也可以不带,会执行实现了Observer接口update(Observable o,Object obj)方法,在这个方法中可以获取
arg参数.(一个类的执行会引起另一个类的执行)
public class MyObservable extends Observable {
Integer i;
public void set(Integer i){
this.i=i;
this.setChanged();
}
public void testChange(){
//设置对象已改变
this.setChanged();
// set(Integer.valueOf(8));
//通知观察者
// this.notifyObservers(i);
this.notifyObservers("猪肉涨价了");
System.out.println("世道变了!!");
}
public static void main(String [] args){
MyObservable observable = new MyObservable();
MyObserver observer = new MyObserver();
MyObserver observer2 = new MyObserver();
//注册观察者
observable.addObserver(observer);
observable.addObserver(observer2);
observable.testChange();
}
}
import java.util.Observable;
import java.util.Observer;
public class MyObserver implements Observer {
public void update(Observable o, Object arg) {//只要改变了 observable 对象就调用此方法。
System.out.println( "观察者观察到:::" +(String)arg);
}
}
相关资源:Java 面经手册·小傅哥(公众号:bugstack虫洞栈).pdf