Java Observable deleteObserver()方法与示例
可观察类deleteObserver()方法
deleteObserver()方法在java.util包中可用。
deleteObserver()方法用于从此Observable对象的观察者集中删除给定的观察者。
deleteObserver()方法是一种非静态方法,只能通过类对象访问,如果尝试使用类名称访问该方法,则会收到错误消息。
deleteObserver()方法在删除观察者时不会引发异常。
语法:
public void deleteObserver(Observer obs);
参数:
Observerobs–代表要从集合中删除的观察者。
返回值:
该方法的返回类型为void,不返回任何内容。
示例
//Java程序演示示例
//Observable的voiddeleteObserver(Observerobs)方法的方法
import java.util.*;
//实现观察者类
class Observers_1 implements Observer {
public void update(Observable obj, Object ob) {
System.out.println("Obs1: ");
}
}
class Observers_2 implements Observer {
public void update(Observable obj, Object ob) {
System.out.println("Obs2: ");
}
}
//实施观察类
class Observed extends Observable {
//函数调用
void deleteObs() { setChanged();
//通过使用notifyObservers()方法是
//通知所有观察者
//已实现 notifyObservers();
}
}
public class DeleteObservers {
//实现主要方法
public static void main(String args[]) {
Observed observed = new Observed();
Observers_1 obs1 = new Observers_1();
Observers_2 obs2 = new Observers_2();
observed.addObserver(obs1);
observed.addObserver(obs2);
//通过使用countObservers()方法是
//返回观察者的数量
//在这个对象中
int count_obs = observed.countObservers();
System.out.println("observed.countObservers(): " + count_obs);
observed.deleteObs();
//通过使用deleteObserver()方法
//删除给定的观察者(如果存在)
observed.deleteObserver(obs2);
count_obs = observed.countObservers();
System.out.println("observed.deleteObserver(obs2): " + count_obs);
observed.deleteObs();
}
}输出结果
observed.countObservers(): 2 Obs2: Obs1: observed.deleteObserver(obs2): 1 Obs1: