代码之家  ›  专栏  ›  技术社区  ›  Daniel Szalay

确定对象是否已更改的最佳方法是什么?

  •  4
  • Daniel Szalay  · 技术社区  · 14 年前

    我在Java Web应用程序(JSF1.2,Ri饰相)中制作了一些“保存”bean功能。它使用jaxb将其转换为xml字符串,然后将其存储在数据库中。如果用户重新加载,我想通知用户(bean)内容是否已更改,并且应该再次保存。

    我的想法是推翻 hashCode() 函数“with” org.apache.commons.lang.builder.HashCodeBuilder ,但是我有很多字段和子元素。 有没有其他方法来处理这种功能?

    编辑

    “比较”是在另一个视图上完成的!

    任何帮助都将不胜感激!

    3 回复  |  直到 11 年前
        1
  •  5
  •   rsp    14 年前

    你可以加一个 boolean dirty; 标记到bean,将其设置为 true 在你的setters中,在重新加载和保存之后清除它。

        2
  •  1
  •   polygenelubricants    14 年前

    你不能依赖 hashCode 单独确定对象是否已更改。也就是说,就因为这个物体 小精灵 像以前一样,并不意味着它没有改变。

        3
  •  -1
  •   Harun    11 年前

    可以使用Java的MD5功能:

    MessageDigest digest = java.security.MessageDigest.getInstance("MD5");
    digest.update(myObject);
    byte[] hash = digest.digest();