码迷,mamicode.com
首页 > 其他好文 > 详细

利用反射机制,对对象的属性值进行自动设置

时间:2016-06-04 17:50:27      阅读:141      评论:0      收藏:0      [点我收藏+]

标签:

利用反射机制,对对象的属性值进行自动设置

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!