我是Java的新手,所以如果您发现此问题毫无道理,我深表歉意。
只想问问是否有可能收集对象的所有属性,特别是那些不再是默认值的属性。例如,一个将某些属性设置为新值的Bean,如何仅给定具有新值的对象如何获得那些已更新的属性。
还是有一种方法可以收集给定bean调用的所有setter方法?
最佳答案
您可以在对象中注册java.beans.PropertyChangeListener
并在调用每个设置器时触发一个事件。它看起来像:
public class Foo {
// some field here
private PropertyChangeListener listener;
public void setBar(String bar) {
this.bar = bar;
if (listener != null) {
listener.fireEvent(..);
}
}
// etc setters and getters
// setter for the listener
// (instead of a single listener, you may want a collection of listeners)
}
然后,您可以在侦听器中将所有更改存储在例如集合中。
关于java - 如何收集已更新对象的所有属性?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5855966/