比较两个对象.怎么找出来那些字段不一样,并展示到页面中?

我现在有这样一个需求,从数据库取出来两条记录.在java中封装成两个对象. 我现在想比较下这两个对象的字段值是不是一样,我最终需要的结果就是把不一样的字段,在页面中来展示.

这里想不出来该怎么来比较,是在java里面比较好呢?还是放到页面的table中生存两行,然后上下字段通过js或者jquery来比较好呢.

如果是在java里面比较我感觉难度很大,一个字段一个字段来比较,如果不一样的还得想办法标识下.然后再去页面展示,感觉这个操作比较复杂

如果是在页面中比较,我就得想方法来获取两行的上下单元格的字段来做比较,如果不一样,给当前单元格加上红色标记

问问大家还有没有什么更好的办法?或者请大家给我以上两个想法给点建议 ! 不胜感激 !

如果你只是想在页面上做过颜色区分,用js判读区分最合适了,简单一点的方法就是将对象值取出来,在页面上用js判读值是否相等进而进行设置颜色,如果数据量大建议用xml,用ajax请求数据,然后将xml数据进行解析。

早Java里比较不会蛮烦吧,获取Field属性数组,然后一个循环把不同的值取出来存进一个新对象中,然后把对象丢到页面上展示出来不就行了,可能我没没理解你的需求吧!

仔细的看了下你的需求,感觉用java判断的话,用反射是可以找出不同字段,但要标识出来就要多写代码了。这样代码就不规范了。

用js判断吧,又简单又实用。

直接用list>和map<字段名称,值>集合封装查询结果来作为两个对象,循环list判断相同key的的值是否相同,返回一个map<字段名称,值>最为不相同结果。

看下这个能不能解决你的需求 https://github.com/dadiyang/equator

List<FieldInfo> diff = new GetterBaseEquator().getDiffFields(user1, user2);