import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.util.HashMap; import java.util.Map; import org.apache.log4j.Logger; public class zkClone { private static Logger logger = Logger.getLogger(zkClone.class); //克隆对象存在的属性值 public static void cloneField(Object target,Object instance){ Map<String, Object> invokeMap = new HashMap<String, Object>(); Method[] targetMth = target.getClass().getDeclaredMethods(); Method[] instanceMth = instance.getClass().getDeclaredMethods(); try { for(int i=0;i<instanceMth.length;i++){ Method m = instanceMth[i]; if(m.getName().indexOf("get")!=-1){ Object result = m.invoke(instance); if(result!=null){ invokeMap.put("set"+m.getName().substring(3), result); } } } for(int j=0;j<targetMth.length;j++){ Method m = targetMth[j]; Object args = invokeMap.get(m.getName()); if(args!=null){ logger.info("调用方法 => "+m.getName()+" 值 => "+args.toString()); m.invoke(target, args); } } } catch (Exception e) { e.printStackTrace(); } } }
[ java反射 ] 克隆对象的属性
猜你喜欢
转载自www.cnblogs.com/przone/p/9075217.html
今日推荐
周排行