国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

Java利用反射自動封裝成實(shí)體對象的方法

2019-11-26 15:18:45
字體:
供稿:網(wǎng)友

本文實(shí)例講述了Java利用反射自動封裝成實(shí)體對象的方法。分享給大家供大家參考。具體分析如下:

利用此方法的時候需要傳遞的參數(shù)的名稱,必須以行號結(jié)尾,去掉行號就是屬性名稱,比如頁面?zhèn)鬟fname+rowNo,那么實(shí)體對象的屬性名應(yīng)該為name。代碼如下

復(fù)制代碼 代碼如下:
//獲取頁面數(shù)據(jù),自動封裝成bean對象
public List getObjectList(Class clazz,String[] rowNos) throws Exception{
        List objList = new ArrayList();
        for(int i=0;rowNos!=null && i<rowNos.length;i++){
            //創(chuàng)建對象實(shí)例
            Object object = clazz.newInstance();
            //獲取類聲明的屬性
            Field[] fields = clazz.getDeclaredFields();
            
            StringBuffer buffer = null;
            //遍歷屬性,執(zhí)行封裝
            for(int j=0;j<fields.length;j++){
                //獲取屬性的名字
                String fieldName = fields[j].getName();
                //得到參數(shù)的名字
                String paraName = fields[j].getName()+rowNos[i];
                
                //如果獲取參數(shù)值為空則繼續(xù)循環(huán)
                String value = getValueNull(paraName);
                if(value==null){
                    continue;
                }
                
                //參數(shù)值
                Object[] paramValue =new Object[1];
                if(fields[j].getType().toString().equals("class java.lang.String")){
                    paramValue[0]=value;
                }
                if(fields[j].getType().toString().equals("class java.lang.Integer")){
                    paramValue[0]=new Integer(value);
                }
                if(fields[j].getType().toString().equals("class java.lang.Double")){
                    paramValue[0]=new Double(value);
                }
                if(fields[j].getType().toString().equals("class java.util.Date")){
                    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
                    paramValue[0]=sdf.parse(value);
                }
                
                //參數(shù)類型
                Class[] paramType= {fields[j].getType()};
                
                //得到set方法的名字
                buffer = new StringBuffer("set");
                buffer.append(fieldName.substring(0, 1).toUpperCase());
                buffer.append(fieldName.substring(1));
                //獲取放回
                Method method = clazz.getDeclaredMethod(buffer.toString(), paramType);
                //執(zhí)行方法
                method.invoke(object,paramValue);
            }
            //將當(dāng)前對象放到list中
            objList.add(object);
        }
        return objList;
}

希望本文所述對大家的Java程序設(shè)計有所幫助。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 山阴县| 锡林郭勒盟| 辽宁省| 庄河市| 托里县| 望都县| 宿州市| 孟连| 临泉县| 恭城| 隆回县| 刚察县| 西平县| 开封县| 荔波县| 夏河县| 甘德县| 安陆市| 余干县| 保靖县| 黄山市| 德令哈市| 平顶山市| 张家川| 华容县| 乌恰县| 博白县| 定西市| 米林县| 昆山市| 沁源县| 乌兰察布市| 清流县| 巴中市| 遂溪县| 临汾市| 临洮县| 永清县| 什邡市| 都江堰市| 米泉市|