码迷,mamicode.com
首页 > 编程语言 > 详细

Java 比较对象中的内容是否一致

时间:2019-07-10 14:59:13      阅读:158      评论:0      收藏:0      [点我收藏+]

标签:size   lis   return   field   illegal   declare   end   trace   对象   

获取对象中的所有属性

private static Field[] getAllFields(Object object) {
     Class clazz = object.getClass();
     List<Field> fieldList = new ArrayList<>();
     while (clazz != null) {
         fieldList.addAll(new ArrayList<>(Arrays.asList(clazz.getDeclaredFields())));
         clazz = clazz.getSuperclass();
     }
     Field[] fields = new Field[fieldList.size()];
     fieldList.toArray(fields);
     return fields;
 }

比较对象中的内容是否一致

private StringBuilder compareContract(Object obj, Object obj2) {
    StringBuilder stringBuilder = new StringBuilder();
    try {
        Field[] fields = getAllFields(obj);
        for (int j = 0; j < fields.length; j++) {
            fields[j].setAccessible(true);
            // 字段值
            if (!fields[j].get(obj).equals(fields[j].get(obj2))) {
                stringBuilder.append(obj2.get字段());
                stringBuilder.append(fields.getName()).append("、"));
            }
        }
    } catch (IllegalAccessException e) {
        e.printStackTrace();
    }
    return stringBuilder;
}

Java 比较对象中的内容是否一致

标签:size   lis   return   field   illegal   declare   end   trace   对象   

原文地址:https://www.cnblogs.com/lsys/p/11163606.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!