<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    LinuxChan的程序園地

    前端后端Web開(kāi)發(fā)技術(shù)

     

    兩個(gè)很簡(jiǎn)單的java反射應(yīng)用

    1,是否對(duì)java Web中無(wú)處不在的Vo ,Dto比較無(wú)語(yǔ)呢?想要看看其中的數(shù)據(jù),就必需不厭其煩的調(diào)用getXXX();所以寫(xiě)了個(gè)BaseVo 只要繼承它,
    然后直接調(diào)用它的toString()方法,即可將里面的值都打印出來(lái)
        public String toString() {
            Field[] fields 
    = this.getClass().getDeclaredFields();
            StringBuffer result 
    = new StringBuffer();
            
    for (Field field : fields) {
                
    // System.out.prIntegerln(field.getName());
                String fieldName = field.getName();
                String methodName 
    = "get" + fieldName.substring(01).toUpperCase()
                        
    + fieldName.substring(1);
                result.append(fieldName 
    + ":");
                Method method 
    = null;
                Object obj 
    = null;
                
    try {
                    method 
    = UserVo.class.getMethod(methodName);
                    obj 
    = method.invoke(thisnull);
                }
     catch (SecurityException e) {
                    
    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
     catch (NoSuchMethodException e) {
                    
    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
     catch (IllegalArgumentException e) {
                    
    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
     catch (IllegalAccessException e) {
                    
    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
     catch (InvocationTargetException e) {
                    
    // TODO Auto-generated catch block
                    e.printStackTrace();
                }

                
    if (obj != null{
                    result.append(obj);
                }
     else
                    result.append(
    "");
                result.append(
    "\n");
            }

            
    return result.toString();
        }


    2,2個(gè)同類(lèi)型的Vo/Dto,需要將一個(gè)中的值填充到另外一個(gè)里去。正常方法需要set/get 如果字段一多,簡(jiǎn)直是噩夢(mèng)。而利用反射,可以輕易實(shí)現(xiàn)。
     1    public static void parseVO(Object obj, Object target)
     2            throws Exception, NoSuchMethodException {
     3        for (Field field : obj.getClass().getDeclaredFields()) {
     4            Method getMethod = obj.getClass().getMethod(
     5                    "get" + field.getName().substring(01).toUpperCase()
     6                            + field.getName().substring(1));
     7            Object result = getMethod.invoke(obj);
     8            if (result != null{
     9                Method setMethod = target.getClass().getMethod(
    10                        "set" + field.getName().substring(01).toUpperCase()
    11                                + field.getName().substring(1), result.getClass());
    12                setMethod.invoke(target, result);
    13            }

    14        }

    15    }

    posted on 2009-01-23 12:04 LinuxChan 閱讀(498) 評(píng)論(2)  編輯  收藏

    評(píng)論

    # re: 兩個(gè)很簡(jiǎn)單的java反射應(yīng)用 2009-01-30 09:58 sorcerer

    反射的性能問(wèn)題需要斟酌一下.  回復(fù)  更多評(píng)論   

    # re: 兩個(gè)很簡(jiǎn)單的java反射應(yīng)用 2009-02-13 14:19 Rory

    有時(shí)候比較簡(jiǎn)單的也的確沒(méi)必要用反射,畢竟性能方面的考慮  回復(fù)  更多評(píng)論   


    只有注冊(cè)用戶(hù)登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     

    導(dǎo)航

    統(tǒng)計(jì)

    常用鏈接

    留言簿(2)

    隨筆檔案

    友情鏈接

    搜索

    最新評(píng)論

    閱讀排行榜

    評(píng)論排行榜

    主站蜘蛛池模板: 欧洲一级毛片免费| 亚洲第一页日韩专区| 亚洲国产精品无码久久| 亚洲AⅤ无码一区二区三区在线 | 免费国产真实迷j在线观看| 久久成人18免费网站| 亚洲午夜久久久精品电影院| 国产成人免费一区二区三区| 亚在线观看免费视频入口| 亚洲免费网站观看视频| 国产精品亚洲а∨无码播放| 免费精品人在线二线三线区别| 中文字幕人成无码免费视频| 羞羞视频在线免费观看| 亚洲综合无码一区二区三区| 夜色阁亚洲一区二区三区| 99久久国产免费中文无字幕| 最好2018中文免费视频| 亚洲欧洲日产韩国在线| 午夜免费不卡毛片完整版| 丝袜足液精子免费视频| 精品亚洲av无码一区二区柚蜜| 亚洲∧v久久久无码精品 | 亚洲爆乳精品无码一区二区三区| 最近中文字幕mv免费高清电影| 拍拍拍无挡免费视频网站| 亚洲AV色欲色欲WWW| 亚洲国产夜色在线观看| 久久综合九九亚洲一区| 免费一看一级毛片人| 最近中文字幕无免费视频| 日本免费一区二区三区| 两个人的视频www免费| 免费毛片毛片网址| 亚洲人成网站999久久久综合| 亚洲精品免费视频| 亚洲宅男天堂在线观看无病毒| 四虎永久免费影院| 最新中文字幕电影免费观看| 中文免费观看视频网站| 9277手机在线视频观看免费|