java - 当 firePropertyChange 触发 null 时,Bean 数据绑定(bind)不会更新

标签 java swing data-binding javabeans

我正在使用 Java Beans

 firePropertyChange(String propertyName, Object oldValue,
        Object newValue)

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

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

最佳答案

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

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

所以你的结果并不意外。从概念上讲,最大限度地减少虚假更新是有意义的,而且还可以区分从未设置过的属性和可能无意中变为 null 的属性。如果没有更多上下文,很难提出替代方案,但您可以使用 sentinel value表示故意变为 null 的值。

关于java - 当 firePropertyChange 触发 null 时,Bean 数据绑定(bind)不会更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11299519/

相关文章:

java - 使用 Cassandra 3.0 的序列生成器/自动增量

java - 有没有办法在JavaFX中转换节点数组

Java Swing 文本编辑器

java - 将 Property<Predicate<MyObject>> 绑定(bind)到 ListView(使用 SelectionMode.MULTIPLE)

java - JAXB 解码问题

java - 按大小顺序打印给定字符串的所有子字符串

c# - 如何使用 Windows 窗体单选按钮进行数据绑定(bind)?

c# - Wpf 绑定(bind)到对象属性不起作用

java - 是否可以关闭 JTable 中的自动换行?

mysql - 如何解决 MySQLSyntaxErrorException