Java Observable deleteObservers() 方法



描述

Java Observable deleteObservers() 方法清除观察者列表。此对象将不再有任何观察者。

声明

以下是Java.util.Observable.deleteObservers() 方法的声明

public void deleteObservers(Observer o)

参数

返回值

异常

删除字符串值更改示例中的观察者

以下示例演示了 java.util.Observable.deleteObservers() 方法的用法。我们通过扩展 Observable 类创建了一个 ObservedObject 类,然后重写了其 setValue() 方法。在主类中,我们使用 addObserver() 方法添加了观察者。然后使用 deleteObserver() 方法,我们使用 deleteObservers() 方法删除添加的观察者,并在输出中,我们打印了 ObservedObject 值发生的更新。

package com.tutorialspoint;

import java.util.Observable;
import java.util.Observer;

class ObservedObject extends Observable {
   private String watchedValue;
   
   public ObservedObject(String value) {
      watchedValue = value;
   }
   
   public void setValue(String value) {
   
      // if value has changed notify observers
      if(!watchedValue.equals(value)) {
         System.out.println("Value changed to new value: "+value);
         watchedValue = value;

         // mark as value changed
         setChanged();
         
         // trigger notification
         notifyObservers(value);
      }
   }
}
public class ObservableDemo implements Observer {
   public String name;
   
   public ObservableDemo(String name) {
      this.name = name;
   }
   
   public static void main(String[] args) {
      
      // create watched and watcher objects
      ObservedObject watched = new ObservedObject("Original Value");
      
      // watcher object listens to object change
      ObservableDemo watcher1 = new ObservableDemo("Watcher1");
      ObservableDemo watcher2 = new ObservableDemo("Watcher2");

      // trigger value change
      watched.setValue("Value before addObserver");
      
      // add observer to the watched object
      watched.addObserver(watcher1);
      watched.addObserver(watcher2);
      
      // trigger value change
      watched.setValue("Value after addObserver");
      
      // delete all observers
      watched.deleteObservers();
      
      // trigger value change
      watched.setValue("Value after deleteObservers");
   }
   
   public void update(Observable obj, Object arg) {
      System.out.println(name+" called with Arguments: "+arg);
   }
}

输出

让我们编译并运行上述程序,这将产生以下结果:

Value changed to new value: Value before addObserver
Value changed to new value: Value after addObserver
Watcher2 called with Arguments: Value after addObserver
Watcher1 called with Arguments: Value after addObserver
Value changed to new value: Value after deleteObservers

删除整数值更改示例中的观察者

以下示例演示了 java.util.Observable.deleteObservers() 方法的用法。我们通过扩展 Observable 类创建了一个 ObservedObject 类,然后重写了其 setValue() 方法。在主类中,我们使用 addObserver() 方法添加了观察者。然后使用 deleteObserver() 方法,我们使用 deleteObservers() 方法删除添加的观察者,并在输出中,我们打印了 ObservedObject 值发生的更新。

package com.tutorialspoint;

import java.util.Observable;
import java.util.Observer;

class ObservedObject extends Observable {
   private Integer watchedValue;
   
   public ObservedObject(Integer value) {
      watchedValue = value;
   }
   
   public void setValue(Integer value) {
   
      // if value has changed notify observers
      if(!watchedValue.equals(value)) {
         System.out.println("Value changed to new value: "+value);
         watchedValue = value;

         // mark as value changed
         setChanged();
         
         // trigger notification
         notifyObservers(value);
      }
   }
}
public class ObservableDemo implements Observer {
   public String name;
   
   public ObservableDemo(String name) {
      this.name = name;
   }
   
   public static void main(String[] args) {
      
      // create watched and watcher objects
      ObservedObject watched = new ObservedObject(1);
      
      // watcher object listens to object change
      ObservableDemo watcher1 = new ObservableDemo("Watcher1");
      ObservableDemo watcher2 = new ObservableDemo("Watcher2");

      // trigger value change
      watched.setValue(2);
      
      // add observer to the watched object
      watched.addObserver(watcher1);
      watched.addObserver(watcher2);
      
      // trigger value change
      watched.setValue(3);
      
      // delete all observers
      watched.deleteObservers();
      
      // trigger value change
      watched.setValue(4);
   }
   
   public void update(Observable obj, Object arg) {
      System.out.println(name+" called with Arguments: "+arg);
   }
}

输出

让我们编译并运行上述程序,这将产生以下结果:

Value changed to new value: 2
Value changed to new value: 3
Watcher2 called with Arguments: 3
Watcher1 called with Arguments: 3
Value changed to new value: 4

删除对象值更改示例中的观察者

以下示例演示了 java.util.Observable.deleteObservers() 方法的用法。我们通过扩展 Observable 类创建了一个 ObservedObject 类,然后重写了其 setValue() 方法。在主类中,我们使用 addObserver() 方法添加了观察者。然后使用 deleteObserver() 方法,我们使用 deleteObservers() 方法删除添加的观察者,并在输出中,我们打印了 ObservedObject 值发生的更新。

package com.tutorialspoint;

import java.util.Observable;
import java.util.Observer;

class ObservedObject extends Observable {
   private Student watchedValue;
   
   public ObservedObject(Student value) {
      watchedValue = value;
   }
   
   public void setValue(Student value) {
   
      // if value has changed notify observers
      if(!watchedValue.equals(value)) {
         System.out.println("Value changed to new value: "+value);
         watchedValue = value;

         // mark as value changed
         setChanged();
         
         // trigger notification
         notifyObservers(value);
      }
   }
}
public class ObservableDemo implements Observer {
   public String name;
   
   public ObservableDemo(String name) {
      this.name = name;
   }
   
   public static void main(String[] args) {
      
      // create watched and watcher objects
      ObservedObject watched = new ObservedObject(new Student(1, "Julie"));
      
      // watcher object listens to object change
      ObservableDemo watcher1 = new ObservableDemo("Watcher1");
      ObservableDemo watcher2 = new ObservableDemo("Watcher2");

      // trigger value change
      watched.setValue(new Student(2, "Robert"));
      
      // add observer to the watched object
      watched.addObserver(watcher1);
      watched.addObserver(watcher2);
      
      // trigger value change
      watched.setValue(new Student(3, "Adam"));
      
      // delete all observers
      watched.deleteObservers();
      
      // trigger value change
      watched.setValue(new Student(4, "Michael"));
   }
   
   public void update(Observable obj, Object arg) {
      System.out.println(name+" called with Arguments: "+arg);
   }
}
class Student {
   int rollNo;
   String name;

   Student(int rollNo, String name){
      this.rollNo = rollNo;
      this.name = name;
   }

   @Override
   public String toString() {
      return "[ " + this.rollNo + ", " + this.name + " ]";
   }
}

输出

让我们编译并运行上述程序,这将产生以下结果:

Value changed to new value: [ 2, Robert ]
Value changed to new value: [ 3, Adam ]
Watcher2 called with Arguments: [ 3, Adam ]
Watcher1 called with Arguments: [ 3, Adam ]
Value changed to new value: [ 4, Michael ]
java_util_observable.htm
广告
© . All rights reserved.