java 有相同参数的类赋值

主要用于让两个对象的值保存一致,省略getset代码

/**
     * <p>
     *
     * @param class1 基准类,被赋值对象
     * @param class2 提供数据的对象
     * @throws Exception
     * @description 转换javabean ,将class2中的属性值赋值给class1,如果class1属性有值,则不覆盖
     * </p>
     * @see
     */
    public static void converJavaBean(Object class1, Object class2) {
        Class<?> clazz1 = class1.getClass();
        Class<?> clazz2 = class2.getClass();
        Field[] fields1 = clazz1.getDeclaredFields();
        Field[] fields2 = clazz2.getDeclaredFields();
        try {
            for (int i = 0; i < fields1.length; i++) {
                fields1[i].setAccessible(true);
                fields2[i].setAccessible(true);
                Object obg1 = fields1[i].get(class1);
                Object obg2 = fields2[i].get(class2);
                if ((null == fields1[i].get(class1) || "" == fields1[i].get(class1)) && (null != fields2[i].get(class2) || "" == fields1[i].get(class1))) {
                    fields1[i].set(class1, fields2[i].get(class2));
                }
            }
        } catch (ArrayIndexOutOfBoundsException e) {
            System.out.println("数组下标越界");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

此方法只会给class1中的空值字段赋值,如果想全部赋值,把空判断去掉

原文地址:https://www.cnblogs.com/wl1202/p/14744243.html