2

我正在使用 Java Beans

 firePropertyChange(String propertyName, Object oldValue,
        Object newValue)

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

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

4

1 回答 1

3

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

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

所以你的结果并不意外。从概念上讲,尽量减少虚假更新是有意义的,但也可以区分从未设置的属性和null可能无意中设置的属性。如果没有更多上下文,很难提出替代方案,但您可以使用哨兵值来表示null有意成为的值。

于 2012-07-02T19:44:09.017 回答