Java tutorial
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 (!watchedValue.equals(value)) { watchedValue = value; setChanged(); } } public void resetValue() { clearChanged(); } } class MainObserver implements Observer { public void update(Observable obj, Object arg) { System.out.println("Update called"); } } public class Main { public static void main(String[] args) { ObservedObject watched = new ObservedObject("Original Value"); MainObserver watcher = new MainObserver(); watched.addObserver(watcher); watched.setValue("New Value"); if (watched.hasChanged()) System.out.println("Value changed"); else System.out.println("Value not changed"); watched.resetValue(); if (watched.hasChanged()) System.out.println("Value changed"); else System.out.println("Value not changed"); } }