0

我最近与一位同事就如何比较同一个 java 类的 2 个实例进行了辩论。

您有一个复杂对象的两个实例,并且想知道这两个对象之间的哪些属性不同。

这是一个用例:您有一个包含很多字段的用户配置文件,并且用户提交了一个新配置文件,您想知道哪些字段已更改以便能够显示诸如“成功更改您的生日、姓名、街道名称.. 。”

所以目前,我最好的解决方案是在类中编写一个比较方法,该方法接受另一个对象并逐个比较每个字段,然后返回不同的字段列表。

我想知道是否有任何自动方法(例如来自外部库)可以做到这一点,而不必手动指定每个属性。

顺便说一句,如果 hibernate 有一种方法可以这样做来比较本地和数据库对象,它就可以做到这一点。

4

1 回答 1

2

正如 Guillaume Polet 所指出的,使用反射。我还会在需要像这样公开的字段上添加注释。如果您不喜欢公共字段的想法,请使用带有注释的 getX() 方法。我不知道任何库代码可以进行比较;但写起来不会花很长时间。

于 2012-04-24T10:11:09.013 回答