美文网首页
如何判断同一类型的两个对象的属性值是否相等

如何判断同一类型的两个对象的属性值是否相等

作者: 贱小得 | 来源:发表于2016-09-28 10:42 被阅读0次

    有时候我们需要对两个对象的属性值进行一些比较操作,例如在做一些保存操作时判断是否有属性被修改等。
    那么你可以将以下代码进行一些修改作为一个工具类来使用。
    其中Pojo为你自己定义的对象类型,根据需求进行修改即可。

    public static boolean contrastObj(Object obj1, Object obj2) {
        boolean isEquals = true;
        if (obj1 instanceof Pojo && obj2 instanceof Pojo ) {
            Pojo pojo1 = (Pojo) obj1;
            Pojo pojo2 = (Pojo) obj2;
            List textList = new ArrayList<String>();
            try {
                Class clazz = pojo1.getClass();
                Field[] fields = pojo1.getClass().getDeclaredFields();
                for (Field field : fields) {
                    PropertyDescriptor pd = new PropertyDescriptor(field.getName(), clazz);
                    Method getMethod = pd.getReadMethod();
                    Object o1 = getMethod.invoke(pojo1);
                    Object o2 = getMethod.invoke(pojo2);
                    if (!o1.toString().equals(o2.toString())) {
                        isEquals = false;
                        textList.add(getMethod.getName() + ":" + "false");
                    } else {
                        textList.add(getMethod.getName() + ":" + "true");
                    }
                }
            } catch (Exception e) {
    
            }
            for (Object object : textList) {
                System.out.println(object);
            }
        }
        return isEquals;
    }

    相关文章

      网友评论

          本文标题:如何判断同一类型的两个对象的属性值是否相等

          本文链接:https://www.haomeiwen.com/subject/xzphyttx.html