我是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/

10-15 10:14