public class TwoBeanUtils { /** 日志输出 */ final static Logger log = LoggerFactory.getLogger(TwoBeanUtils.class); /** * 简单对象间属性一致时的值拷贝 * @param from * @param to */ public static void copyFormToBean(Object from,Object to){ try{ Field[] field = from.getClass().getDeclaredFields(); for (int i = 0; i < field.length; i++) { try{ String fieldname = field[i].getName(); String setMethodname = new StringBuffer("set").append( fieldname.substring(0, 1).toUpperCase()).append( fieldname.substring(1)).toString(); String getMethodname = new StringBuffer("get").append( fieldname.substring(0, 1).toUpperCase()).append( fieldname.substring(1)).toString(); Method method = from.getClass().getMethod(getMethodname, null); Class[] cla = new Class[1]; cla[0] = field[i].getType(); Object[] paras=new Object[1]; paras[0]=method.invoke(from,null); if ( paras[0]!=null){ to.getClass().getMethod(setMethodname, cla).invoke( to, paras); } }catch(Exception e){ } } }catch(Exception e){ log.error("form表单拷贝到对象", e); } } /** * 简单对象间属性一致时的值拷贝 * @param from * @param to */ public static void copyBeanToForm(Object from,Object to){ try{ Field[] field = to.getClass().getDeclaredFields(); for (int i = 0; i < field.length; i++) { try{ String fieldname = field[i].getName(); String setMethodname = new StringBuffer("set").append( fieldname.substring(0, 1).toUpperCase()).append( fieldname.substring(1)).toString(); String getMethodname = new StringBuffer("get").append( fieldname.substring(0, 1).toUpperCase()).append( fieldname.substring(1)).toString(); // System.out.println(fieldname); Method method = from.getClass().getMethod(getMethodname, null); Class[] cla = new Class[1]; cla[0] = field[i].getType(); Object[] paras=new Object[1]; paras[0]=method.invoke(from,null); //System.out.println(fieldname+"="+paras[0]); to.getClass().getMethod(setMethodname, cla).invoke( to, paras); }catch(Exception e){ } } }catch(Exception e){ log.error("对象拷贝到form表单", e); } } /** * 简单对象间属性名一致时的值拷贝 * @param bean其为一组简单属性的对象 * @param beans其属性为bean元素对象属性的数组 */ public static void copyBeanToBeans(List bean, Object beans) { try { if (bean != null) { Field[] field = beans.getClass().getDeclaredFields(); String claname[]=new String[field.length]; //System.out.println(field.length); for (int i = 0; i < field.length; i++) { try{ List list = new ArrayList(); String fieldname = field[i].getName(); String setMethodname = new StringBuffer("set").append( fieldname.substring(0, 1).toUpperCase()).append( fieldname.substring(1)).toString(); String getMethodname = new StringBuffer("get").append( fieldname.substring(0, 1).toUpperCase()).append( fieldname.substring(1)).toString(); int k = 0; Iterator enmu = bean.iterator(); while (enmu.hasNext()) { Object temp = enmu.next(); claname[i]=temp.getClass().getDeclaredField(fieldname).getType().getName(); Method method = temp.getClass().getMethod(getMethodname, null); list.add(method.invoke(temp, null)); k++; } Class[] cla = new Class[1]; cla[0] = beans.getClass().getDeclaredField(fieldname) .getType(); //System.out.println(cla[0]); Object[] paras=new Object[1]; Object obj=null; obj= Array.newInstance(Class.forName(claname[i]),bean.size()); list.toArray((Object[])obj); paras[0]=obj; beans.getClass().getMethod(setMethodname, cla).invoke( beans, paras); }catch(Exception ex){ //有可能beans中的属性,List的对象没有 } } } } catch (Exception e) { log.error("List拷贝到Beans表单", e); } } /** * 简单对象间属性名一致时的值拷贝 * @param bean为简单属性的对象类 * @param beans其属性为bean对象属性的数组 * @param size beans属性数组的长度 * @return List 一组元素为bean的ArrayList */ public static List copyBeansToBean(Object beans, Class bean,int size) { List list = new ArrayList(); try { if (beans != null) { int start=0; while(start