【问题标题】:Beans data binding does not update when firePropertyChange fires null当 firePropertyChange 触发 null 时,Beans 数据绑定不会更新
【发布时间】:2012-07-03 05:05:55
【问题描述】:

我正在使用 Java Beans

 firePropertyChange(String propertyName, Object oldValue,
        Object newValue)

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

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

【问题讨论】:

    标签: java swing data-binding javabeans


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2016-07-02
      • 2011-01-14
      • 2021-02-13
      • 1970-01-01
      • 1970-01-01
      • 2019-01-28
      • 1970-01-01
      • 1970-01-01
      • 2015-08-11
      相关资源
      最近更新 更多