当firePropertyChange触发null时,Bean数据绑定不会更新

时间:2012-07-02 18:54:19

标签: java swing data-binding javabeans

我正在使用Java Beans

 firePropertyChange(String propertyName, Object oldValue,
        Object newValue)

将数据更新传播到我的Swing GUI。

它适用于所有其他值,但是当newValue为null时,不会发送任何事件。有什么方法可以解决这个问题吗?

1 个答案:

答案 0 :(得分:3)

实际上,如果以下谓词成立,则属性更改会触发:

oldValue != null && newValue != null && oldValue.equals(newValue)

所以你的结果并不出人意料。从概念上讲,最小化虚假更新是有意义的,但也可以无意中区分未设置的属性和已成为null的属性。如果没有更多上下文,则很难提出替代方案,但您可以使用sentinel value来表示有意成为null的值。