java监听set方法
时间: 2023-10-17 08:23:08 浏览: 56
在Java中监听set方法可以使用Java Beans的属性变化监听器(PropertyChangeListener)。这个监听器可以检测到Java对象中属性的变化,当属性变化时,会自动调用监听器中的方法。
下面是一个示例代码,演示如何使用属性变化监听器来监听Java对象中属性的变化:
```java
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import java.beans.PropertyChangeSupport;
public class Person {
private String name;
private PropertyChangeSupport support = new PropertyChangeSupport(this);
public String getName() {
return name;
}
public void setName(String name) {
String oldName = this.name;
this.name = name;
support.firePropertyChange("name", oldName, name);
}
public void addPropertyChangeListener(PropertyChangeListener listener) {
support.addPropertyChangeListener(listener);
}
public void removePropertyChangeListener(PropertyChangeListener listener) {
support.removePropertyChangeListener(listener);
}
}
public class Main {
public static void main(String[] args) {
Person person = new Person();
person.addPropertyChangeListener(new PropertyChangeListener() {
@Override
public void propertyChange(PropertyChangeEvent evt) {
if ("name".equals(evt.getPropertyName())) {
System.out.println("Name changed from " + evt.getOldValue() + " to " + evt.getNewValue());
}
}
});
person.setName("Alice");
}
}
```
在这个示例中,Person类中的setName()方法会在属性变化时触发属性变化监听器。在Main类中,我们创建一个Person对象,并向其添加一个属性变化监听器。当我们调用setName()方法并将其设置为"Alice"时,属性变化监听器会自动调用,并打印出"Name changed from null to Alice"的信息。