/** * 此为对象复制的简单实现 使用条件 属性名完全相同, 目标属性中属性都为String * @param obj 源对象 * @param clazz 目标对象 * @param <T> 目标对象 * @return 目标对象 * @throws IllegalAccessException * @throws InstantiationException */ public static <T> T copyProperties(Object obj, Class<?> clazz) throws IllegalAccessException, InstantiationException { T bean = (T) clazz.newInstance(); Field[] res = clazz.getDeclaredFields(); //得到类对象 Class userCla = (Class) obj.getClass(); Field[] fs = userCla.getDeclaredFields(); for (Field f : res) { f.setAccessible(true); //设置些属性是可以访问的 for (Field src : fs) { src.setAccessible(true); if(f.getName().equals(src.getName())){ if (src.get(obj) != null) { //得到此属性的类型 String type = src.getType().toString(); if (type.endsWith("Date")) { // 日期类型 f.set(bean, DateUtil.dateFormate((Date) src.get(obj), "yyyy-MM-dd HH:mm:ss")); }else { //设置此属性的值 f.set(bean, String.valueOf(src.get(obj))); } } break; } } } return bean; }
java反射实现对象复制
最新推荐文章于 2023-05-31 22:51:04 发布