用户收回更改后 Binder#hasChanges() 的状态

State of Binder#hasChanges() after user takes back changes

对于没有绑定 bean 的绑定器,hasChange() 方法 returns true 一旦绑定字段发生更改。但在恢复更改后它仍然是 true。所以我正在寻找类似 isEqualToInitialState() 的东西,以便仅对实际更改启用保存按钮。

是否有适合我的意图的最佳实践?我也没有看到像 hasChangesComparedTo(Bean bean).

这样的方法

Binder.hasChange 只是一个“愚蠢”的跟踪器,是否有任何值 变了。它没有“先前或原始值”的概念。

如果您想将绑定器的状态与原始 bean 进行比较, 你必须自己做:

  1. (可选):向您的 bean 添加适当的 equals 方法,因此 比较更容易处理
  2. 保留原件 value/bean 并在活页夹中设置副本(例如使用 readBean(orig) 然后 writeBean(empty) 将数据放入 一个新鲜的对象)
  3. 比较原件和副本然后做出相应反应