zoukankan      html  css  js  c++  java
  • 通过反射,给对象之间赋值

    /**
      * 通过反射,给对象赋值
      * add by wangHao 2014-01-08
      * @param source
      * @param dest
      * @throws Exception
      */
        public  void CopyObject(Object source,Object dest)throws Exception { 
            BeanInfo sourceBean = Introspector.getBeanInfo(source.getClass(), java.lang.Object.class); 
            PropertyDescriptor[] sourceProperty = sourceBean.getPropertyDescriptors(); 
            BeanInfo destBean = Introspector.getBeanInfo(dest.getClass(), java.lang.Object.class); 
            PropertyDescriptor[] destProperty = destBean.getPropertyDescriptors(); 
            try{ 
                for(int i=0;i<sourceProperty.length;i++){ 
                     if( "id".equals(sourceProperty[i].getName())){
                        continue;
                     }
                    for(int j=0;j<destProperty.length;j++){ 
                        if(sourceProperty[i].getName().equals(destProperty[j].getName())){ 
                            destProperty[j].getWriteMethod().invoke(dest, sourceProperty[i].getReadMethod().invoke(source)); 
                            break;                   
                        } 
                    } 
                } 
            }catch(Exception e){ 
                throw new Exception("属性复制失败:",e); 
            } 
        }

  • 相关阅读:
    HTTP状态代码
    安装mySQL数据库常见问题
    python3.6安装版本选择
    用连接池提高Servlet访问数据库的效率
    策略模式
    如何在vue项目中修改less变量,多主题项目解决方案
    【前端】vue项目 url中传递数组参数
    element date-picker默认值问题
    echart 折线图legend不显示的问题
    vue学习之父子组件通信两种方法
  • 原文地址:https://www.cnblogs.com/holdon521/p/4118587.html
Copyright © 2011-2022 走看看