美文网首页
Java对象比较器

Java对象比较器

作者: chuan_bai | 来源:发表于2019-08-27 10:16 被阅读0次
public class LogUtils<T> {

    /**
     * 对象比较器
     * 比较结果eg:1、字段名称loginName,旧值:liu,新值:gu;2、字段名称address,旧值:hunan,新值:neimenggu
     * @param oldBean
     * @param newBean
     * @param filterFieldNames 过滤的参数合集
     * @return
     */
    public String compareObject(Object oldBean, Object newBean,String[] filterFieldNames) {
        String str = "";

        //if (oldBean instanceof SysConfServer && newBean instanceof SysConfServer) {
        T pojo1 = (T) oldBean;
        T pojo2 = (T) newBean;
        try {
            Class clazz = pojo1.getClass();
            Field[] fields = pojo1.getClass().getDeclaredFields();
            int i = 1;
            for (Field field : fields) {
                if ("serialVersionUID".equals(field.getName())) {
                    continue;
                }
                if( Arrays.asList(filterFieldNames).contains(field.getName())){
                    continue;
                }
                PropertyDescriptor pd = new PropertyDescriptor(field.getName(), clazz);
                Method getMethod = pd.getReadMethod();
                Object o1 = getMethod.invoke(pojo1);
                Object o2 = getMethod.invoke(pojo2);
                if (o1 == null || o2 == null) {
                    continue;
                }
                if (!o1.toString().equals(o2.toString())) {
                    if (i != 1) {
                        str += ";";
                    }
                    str += i + "、字段名称" + field.getName() + ",旧值:" + o1 + ",新值:" + o2;
                    i++;
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        // }
        return str;
    }
}

相关文章

  • Java对象比较器

  • Java 比较器 和 包装类

    Java比较器 背景: 在Java中经常会涉及到多个对象的排序问题,那么就涉及到对象之间的比较 Java中的对象,...

  • Java比较器(对象排序)

    Java实现排序的方式 自然排序:java.lang.Comparable 定制排序:java.lang.Comp...

  • Java比较器

    导语 本节内容,比较器Comparable是核心内容。 主要内容 重新认识Arrays类 两种比较器的使用 具体内...

  • Java比较器

    1.自然比较接口:Comparableimage.png 代码举例: 2.定制比较接口:Comparator 注:...

  • JAVA比较器

    Java中的对象,正常情况下,只能进行比较:== 或 != 。不能使用 > 或 < 的。但是在开发场景中,我们...

  • Java深入学习(一)——构造器创建对象

    1.构造器是创建对象的重要途径 问题:构造器是创建Java对象的途径,是不是说构造器完全负责创建Java对象? 答...

  • java—对象的比较

    如果要判断2个对象是否相等,就要对该对象的属性内容进行比较,如果属性内容相同,则说明是同一个对象,标准方法如下: 记住:

  • java对象比较排序

    问题:点击某个闭合多边形内部,比较点击点距离各条边的距离,取出距离最短的那条线的两个坐标点?思路:根据方法得到点到...

  • java 的对象比较

    本文探讨一下java对象之间比较的三种方式 概念 obj1 == obj2:比较两个对象的内存地址是否相同,即是否...

网友评论

      本文标题:Java对象比较器

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