java listener 检测数据变化
时间: 2023-10-26 16:21:52 浏览: 109
JavaWeb两大组件FILTER&LISTENER
Java中可以使用监听器(Listener)来检测数据变化。对于一些数据模型,Java提供了Observable和Observer接口来实现监听器模式。Observable是被监听的对象,Observer是观察者,当Observable的数据发生变化时,Observer会接收到通知并执行相应的处理。
示例代码如下:
```
public class DataModel extends Observable {
private int data;
public void setData(int data) {
this.data = data;
setChanged(); // 设置数据已经变化
notifyObservers(); // 通知所有的观察者
}
public int getData() {
return data;
}
}
public class DataObserver implements Observer {
@Override
public void update(Observable o, Object arg) {
DataModel dataModel = (DataModel) o;
int data = dataModel.getData();
System.out.println("Data has been changed to " + data);
}
}
public class Main {
public static void main(String[] args) {
DataModel dataModel = new DataModel();
DataObserver dataObserver = new DataObserver();
dataModel.addObserver(dataObserver);
dataModel.setData(1); // 输出:Data has been changed to 1
dataModel.setData(2); // 输出:Data has been changed to 2
}
}
```
在上面的示例代码中,DataModel是被监听的数据模型,DataObserver是观察者。当DataModel的数据发生变化时,DataObserver会接收到通知并执行update方法。在update方法中,我们可以获取到DataModel的最新数据并进行相应的处理。
阅读全文