java 比较两个对象是否一致

本文介绍了一种用于比较两个对象字段值是否一致的方法。通过反射获取对象的所有字段,并逐一比较其属性值来判断对象是否发生变化。适用于Java环境中需要比较复杂对象状态的应用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 /**

     * 比较对象值是否发生了改变

     * @param obj1  

     * @param obj2

     * @return

     */

    public static boolean contrastObj(Object obj1, Object obj2) {

        boolean isEquals = true;

        if (obj1 instanceof objec && obj2 instanceof objec ) {

            objec pojo1 = (objec ) obj1;

            objec  pojo2 = (objec ) obj2;

            List<String> textList = new ArrayList<String>();

            

                Class<? extends objec > clazz = pojo1.getClass();

                Field[] fields = pojo1.getClass().getDeclaredFields();

                int count = 0 ;

                for (Field field : fields) {

                    PropertyDescriptor pd;

                 

                    try {

                        pd = new PropertyDescriptor(field.getName(), clazz);

                       if(count==72){

                           

                       }

               

                    Method getMethod = pd.getReadMethod();

                    Object o1 = getMethod.invoke(pojo1);

                    Object o2 = getMethod.invoke(pojo2);

                    count++;

                    if(o1==null && o2 == null){

                        continue;

                    }

                    if(o1.equals(0) && o2.equals(0)){

                        continue;

                    }

                    if (!o1.toString().equals(o2.toString())) {

                        isEquals = false;

                        textList.add(getMethod.getName() + ":" + "false");

                    } else {

                        textList.add(getMethod.getName() + ":" + "true");

                    }

                    } catch (Exception e) {

                    }

                }

            

        }

        return isEquals;

    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值