一切都在问题的标题中。
你能提供一些我们使用 PropertyChangeListener 和 VetoableChangeListener 的用例吗?
最佳答案
主要区别在于 PropertyChangeListener
应用于绑定(bind)属性,而 VetoableChangeListener
应用于约束属性。
绑定(bind)属性只是一个属性,而受约束的属性是一个属性,听众可以在此属性上表达自己将要进行的更改:他们可以拒绝这种更改的发生。
实际发生的是,当您通知可否决的属性更改时,您将执行类似的操作
VetoableChangeSupport vcs;
vcs.fireVetoableChange(...);
这会抛出一个
PropertyVetoException
,它会告诉你的 bean 观察者希望阻止这个属性更改(它应该被回滚)。