【发布时间】:2012-04-24 09:55:18
【问题描述】:
我最近与一位同事讨论了如何比较同一个 java 类的 2 个实例。
您有一个复杂对象的两个实例,并且想知道这两个实例之间的哪些属性不同。
这是一个用例: 您有一个包含许多字段的用户个人资料,并且用户提交了一份新个人资料,您想知道哪些字段已更改,以便能够显示“成功更改您的生日、姓名、街道名称......”之类的内容
所以目前,我最好的解决方案是在类中编写一个比较方法,该方法接受另一个对象并逐个比较每个字段,然后返回不同字段的列表。
我想知道是否有任何自动方法(例如来自外部库)可以做到这一点,而无需手动指定每个属性。
顺便说一句,如果 hibernate 有一个方法可以这样做来比较本地和数据库对象,它就可以做到这一点。
【问题讨论】:
-
希望这有帮助,类似的线程 - stackoverflow.com/questions/369512/…
-
您可能会为此目的使用反射(使用
getClass().getDeclaredFields())或类似的东西。但是我猜应该有人已经编写并发布了这样的代码,所以也许有人知道这一点。
标签: java hibernate attributes compare