deleteObserver()
方法deleteObserver()方法在java.util包中可用。
deleteObserver()方法用于从此Observable对象的观察者集中删除给定的观察者。
deleteObserver()方法是一种非静态方法,只能通过类对象访问,如果尝试使用类名称访问该方法,则会收到错误消息。
deleteObserver()方法在删除观察者时不会引发异常。
语法:
public void deleteObserver(Observer obs);
参数:
Observer obs –代表要从集合中删除的观察者。
返回值:
该方法的返回类型为void,不返回任何内容。
示例
//Java程序演示示例 //Observable的void deleteObserver(Observer obs)方法的方法 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: