标签:
利用反射机制,对对象的属性值进行自动设置
import java.lang.reflect.Method; /** * 对象的属性值自动设置,利用反射机制 */ public class AutoSet { /** * 将源对象的属性值赋值到目标对象,属性名一致,且源对象有get方法,目标对象有set方法 * @param src 源对象 * @param target 目标对象 * @return 赋值后的目标对象 */ public static Object autoGetterAndSetter(Object src, Object target) { Method[] sms = src.getClass().getMethods(); // 原始类方法srcMethod Method[] tms = target.getClass().getMethods(); // 目标类方法targetMethod for (Method sm : sms) { if (sm.getName().startsWith("get")) { // 原始类的 getter String attrName = sm.getName().substring(3);// 属性 for (Method tm : tms) {// 遍历目标方法 if (("set" + attrName).equals(tm.getName())) {// 执行目标类的指定attrName的setter try{ if(!(null==sm.invoke(src))){ tm.invoke(target, sm.invoke(src)); } }catch(Exception e){ continue; } } } } } return target; } }
标签:
原文地址:http://www.cnblogs.com/Mr-kevin/p/5559104.html