最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時間:2015年01月16日 11:07:41   投稿:shichen2014  
這篇文章主要介紹了Java利用反射自動封裝成實(shí)體對象的方法,可實(shí)現(xiàn)自動封裝成bean對象功能,具有一定參考借鑒價值,需要的朋友可以參考下

本文實(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è)計有所幫助。

相關(guān)文章

  • Java操作excel的三種常見方法實(shí)例

    Java操作excel的三種常見方法實(shí)例

    這篇文章主要給大家介紹了關(guān)于Java操作excel的三種常見方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04
  • SpringBoot中使用AOP實(shí)現(xiàn)日志記錄功能

    SpringBoot中使用AOP實(shí)現(xiàn)日志記錄功能

    AOP的全稱是Aspect-Oriented Programming,即面向切面編程(也稱面向方面編程),它是面向?qū)ο缶幊蹋∣OP)的一種補(bǔ)充,目前已成為一種比較成熟的編程方式,本文給大家介紹了SpringBoot中使用AOP實(shí)現(xiàn)日志記錄功能,需要的朋友可以參考下
    2024-05-05
  • 詳解Java多線程與并發(fā)

    詳解Java多線程與并發(fā)

    多線程是一個進(jìn)程在執(zhí)行過程中產(chǎn)生多個更小的程序單元,這些更小的單元稱為線程,這些線程可以同時存在,同時運(yùn)行,一個進(jìn)程可能包含多個同時執(zhí)行的線程。多線程是實(shí)現(xiàn)并發(fā)機(jī)制的一種有效手段。進(jìn)程和線程一樣,都是實(shí)現(xiàn)并發(fā)的一個基本單位。
    2021-06-06
  • java把字符串寫入文件里的簡單方法分享

    java把字符串寫入文件里的簡單方法分享

    這篇文章主要介紹了java把字符串寫入到文件里的簡單方法,這是跟一個外國朋友學(xué)的代碼,需要的朋友可以參考下
    2014-03-03
  • SpringBoot深入理解之內(nèi)置web容器及配置的總結(jié)

    SpringBoot深入理解之內(nèi)置web容器及配置的總結(jié)

    今天小編就為大家分享一篇關(guān)于SpringBoot深入理解之內(nèi)置web容器及配置的總結(jié),小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-03-03
  • 淺談Java多進(jìn)程程序的運(yùn)行模式

    淺談Java多進(jìn)程程序的運(yùn)行模式

    這篇文章主要介紹了淺談Java多進(jìn)程程序的運(yùn)行模式,包括對進(jìn)程阻塞問題的討論等,需要的朋友可以參考下
    2015-11-11
  • SpringBoot2零基礎(chǔ)到精通之?dāng)?shù)據(jù)庫專項(xiàng)精講

    SpringBoot2零基礎(chǔ)到精通之?dāng)?shù)據(jù)庫專項(xiàng)精講

    SpringBoot是一種整合Spring技術(shù)棧的方式(或者說是框架),同時也是簡化Spring的一種快速開發(fā)的腳手架,本篇我們來學(xué)習(xí)如何連接數(shù)據(jù)庫進(jìn)行操作
    2022-03-03
  • Java中struts2和spring MVC的區(qū)別_動力節(jié)點(diǎn)Java學(xué)院整理

    Java中struts2和spring MVC的區(qū)別_動力節(jié)點(diǎn)Java學(xué)院整理

    這篇文章主要介紹了Java中struts2和spring MVC的區(qū)別,非常不錯,具有參考借鑒價值,需要的朋友參考下吧
    2017-09-09
  • Jmeter線程組傳參原理解析

    Jmeter線程組傳參原理解析

    這篇文章主要介紹了jmeter線程組傳參原理解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-02-02
  • 詳解如何在Spring MVC中處理AJAX請求

    詳解如何在Spring MVC中處理AJAX請求

    在現(xiàn)代 web 開發(fā)中,AJAX(Asynchronous JavaScript and XML)被廣泛用于創(chuàng)建響應(yīng)式和動態(tài)的用戶界面,與傳統(tǒng)的頁面刷新不同,AJAX 允許網(wǎng)頁在不重新加載的情況下與服務(wù)器交換數(shù)據(jù),從而提升了用戶體驗(yàn),本篇博客將深入探討如何在 Spring MVC 中處理 AJAX 請求
    2024-11-11

最新評論

棋牌| 盐边县| 射阳县| 开江县| 全州县| 巧家县| 建水县| 万山特区| 报价| 芒康县| 卢湾区| 米脂县| 横峰县| 宁河县| 西藏| 碌曲县| 江津市| 绵阳市| 库尔勒市| 海口市| 张家口市| 罗山县| 万荣县| 新泰市| 青海省| 新巴尔虎右旗| 梓潼县| 井陉县| 栾城县| 南宁市| 兰州市| 扬州市| 象山县| 宁陵县| 吐鲁番市| 奉节县| 禹城市| 灌阳县| 高青县| 长治县| 水城县|