- Java.util Package Classes
- Java.util - Home
- Java.util - ArrayDeque
- Java.util - ArrayList
- Java.util - Arrays
- Java.util - BitSet
- Java.util - Calendar
- Java.util - Collections
- Java.util - Currency
- Java.util - Date
- Java.util - Dictionary
- Java.util - EnumMap
- Java.util - EnumSet
- Java.util - Formatter
- Java.util - GregorianCalendar
- Java.util - HashMap
- Java.util - HashSet
- Java.util - Hashtable
- Java.util - IdentityHashMap
- Java.util - LinkedHashMap
- Java.util - LinkedHashSet
- Java.util - LinkedList
- Java.util - ListResourceBundle
- Java.util - Locale
- Java.util - Observable
- Java.util - PriorityQueue
- Java.util - Properties
- Java.util - PropertyPermission
- Java.util - PropertyResourceBundle
- Java.util - Random
- Java.util - ResourceBundle
- Java.util - ResourceBundle.Control
- Java.util - Scanner
- Java.util - ServiceLoader
- Java.util - SimpleTimeZone
- Java.util - Stack
- Java.util - StringTokenizer
- Java.util - Timer
- Java.util - TimerTask
- Java.util - TimeZone
- Java.util - TreeMap
- Java.util - TreeSet
- Java.util - UUID
- Java.util - Vector
- Java.util - WeakHashMap
- Java.util Package Extras
- Java.util - Interfaces
- Java.util - Exceptions
- Java.util - Enumerations
- Java.util Useful Resources
- Java.util - Useful Resources
- Java.util - Discussion
Java Observable countObservers() Method
Description
The Java Observable countObservers() method returns the number of observers of this Observable object.
Declaration
Following is the declaration for Java.util.Observable.countObservers() method
public int countObservers()
Parameters
NA
Return Value
This method returns the number of observers of this object.
Exception
NA
Counting Observers for String Value Change Example
The following example shows the usage of java.util.Observable.countObservers() method. We've created an ObservedObject class by extending Observable class and then overridden its method setValue(). In main class, We've added the observers using addObserver() method. Then using countObservers() method, we're counting the Observers added and in output, we've printed the updates happening to the value of 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"); // add observer to the watched object watched.addObserver(watcher1); watched.addObserver(watcher2); // count observers int count = watched.countObservers(); System.out.println(count+" observers listening"); // trigger value change watched.setValue("New Value"); // remove first observer watched.deleteObserver(watcher1); count = watched.countObservers(); System.out.println(count+" observers listening"); // trigger value change watched.setValue("Latest Value"); } public void update(Observable obj, Object arg) { System.out.println(name+" called with Arguments: "+arg); } }
Output
Let us compile and run the above program, this will produce the following result −
2 observers listening Value changed to new value: New Value Watcher2 called with Arguments: New Value Watcher1 called with Arguments: New Value 1 observers listening Value changed to new value: Latest Value Watcher2 called with Arguments: Latest Value
Counting Observers for an Integer Value Change Example
The following example shows the usage of java.util.Observable.countObservers() method. We've created an ObservedObject class by extending Observable class and then overridden its method setValue(). In main class, We've added the observers using addObserver() method. Then using countObservers() method, we're counting the Observers added and in output, we've printed the updates happening to the value of 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"); // add observer to the watched object watched.addObserver(watcher1); watched.addObserver(watcher2); // count observers int count = watched.countObservers(); System.out.println(count+" observers listening"); // trigger value change watched.setValue(2); // remove first observer watched.deleteObserver(watcher1); count = watched.countObservers(); System.out.println(count+" observers listening"); // trigger value change watched.setValue(3); } public void update(Observable obj, Object arg) { System.out.println(name+" called with Arguments: "+arg); } }
Output
Let us compile and run the above program, this will produce the following result −
2 observers listening Value changed to new value: 2 Watcher2 called with Arguments: 2 Watcher1 called with Arguments: 2 1 observers listening Value changed to new value: 3 Watcher2 called with Arguments: 3
Counting Observers for an Object Value Change Example
The following example shows the usage of java.util.Observable.countObservers() method. We've created an ObservedObject class by extending Observable class and then overridden its method setValue(). In main class, We've added the observers using addObserver() method. Then using countObservers() method, we're counting the Observers added and in output, we've printed the updates happening to the value of 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"); // add observer to the watched object watched.addObserver(watcher1); watched.addObserver(watcher2); // count observers int count = watched.countObservers(); System.out.println(count+" observers listening"); // trigger value change watched.setValue(new Student(2, "Robert")); // remove first observer watched.deleteObserver(watcher1); count = watched.countObservers(); System.out.println(count+" observers listening"); // trigger value change watched.setValue(new Student(3, "Adam")); } 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 + " ]"; } }
Output
Let us compile and run the above program, this will produce the following result −
2 observers listening Value changed to new value: [ 2, Robert ] Watcher2 called with Arguments: [ 2, Robert ] Watcher1 called with Arguments: [ 2, Robert ] 1 observers listening Value changed to new value: [ 3, Adam ] Watcher2 called with Arguments: [ 3, Adam ]
To Continue Learning Please Login
Login with Google