1

以下是我关于属性更改的代码。如果我使用此代码, public void propertyChange(PropertyChangeEvent evt)将被正确调用。

public void setWeekDate(Date weekDate) {        
   firePropertyChange("weekDate", this.weekDate, this.weekDate = weekDate);     
}

但是如果我使用下面的代码public void propertyChange(PropertyChangeEvent evt)将不会被调用。

public void setWeekDate(Date weekDate) {
    this.weekDate = weekDate;   
    firePropertyChange("weekDate", this.weekDate, weekDate);
}

谁能告诉我上面的代码有什么问题?

4

1 回答 1

2

在第二种情况下,您提供了两次相同的值。如果值实际上没有改变,我猜 firePropertyChange 什么都不做。尝试这个:

public void setWeekDate(Date weekDate) {
    Date oldValue = this.weekDate;
    this.weekDate = weekDate;   
    firePropertyChange("weekDate", oldValue, this.weekDate);
}
于 2014-10-13T07:52:16.523 回答