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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了利用反射机制,对对象的属性值进行自动设置相关的知识,希望对你有一定的参考价值。

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

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;
    }
}

 

以上是关于利用反射机制,对对象的属性值进行自动设置的主要内容,如果未能解决你的问题,请参考以下文章

利用反射机制自动获取某个类中的属性,以及获取和设置每个属性对应的值

利用反射机制实现对象转Map集合

详解Python中的反射机制

Java学习总结(十四)——java反射机制,利用反射动态创建对象

Java中的反射该如何使用?

java的反射机制