主要用于让两个对象的值保存一致,省略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中的空值字段赋值,如果想全部赋值,把空判断去掉