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

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

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

    LinuxChan的程序園地

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

     

    2009年1月23日

    兩個很簡單的java反射應(yīng)用

    1,是否對java Web中無處不在的Vo ,Dto比較無語呢?想要看看其中的數(shù)據(jù),就必需不厭其煩的調(diào)用getXXX();所以寫了個BaseVo 只要繼承它,
    然后直接調(diào)用它的toString()方法,即可將里面的值都打印出來
        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個同類型的Vo/Dto,需要將一個中的值填充到另外一個里去。正常方法需要set/get 如果字段一多,簡直是噩夢。而利用反射,可以輕易實現(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 @ 2009-01-23 12:04 LinuxChan 閱讀(497) | 評論 (2)編輯 收藏

    開博了,今后會將自己的一些靈感收集其中

    記錄人生成長的方向。

    posted @ 2009-01-23 11:57 LinuxChan 閱讀(114) | 評論 (1)編輯 收藏

    僅列出標題  

    導(dǎo)航

    統(tǒng)計

    常用鏈接

    留言簿(2)

    隨筆檔案

    友情鏈接

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 亚洲激情视频网站| 亚洲成A人片在线观看无码不卡| 亚洲图片校园春色| 最好看最新的中文字幕免费| 亚洲av无码乱码国产精品| 日本不卡免费新一区二区三区| 亚洲av午夜福利精品一区人妖| 国产精品免费看久久久 | 免费v片在线观看视频网站| 亚洲视频小说图片| 精品香蕉在线观看免费| 2020国产精品亚洲综合网| 天天天欲色欲色WWW免费| 亚洲欧美成aⅴ人在线观看| 国产大片51精品免费观看| 猫咪免费观看人成网站在线| 国产成人精品久久亚洲| 国产精品免费无遮挡无码永久视频 | 国产亚洲精品影视在线| 国产精品免费播放| 一级A毛片免费观看久久精品| 中文字幕亚洲不卡在线亚瑟| 色欲色香天天天综合网站免费 | 玖玖在线免费视频| 久久久亚洲欧洲日产国码aⅴ| 国产成在线观看免费视频| 国产AV无码专区亚洲AV麻豆丫| 亚洲中文字幕伊人久久无码| 水蜜桃视频在线观看免费播放高清| 中文字幕亚洲综合久久2| 成年18网站免费视频网站| 一级毛片免费在线| 91亚洲国产成人久久精品网站| 免费毛片在线播放| 中文字幕在线视频免费观看| 亚洲人成综合网站7777香蕉 | 色婷婷六月亚洲婷婷丁香| 四虎影视www四虎免费| 国产一级黄片儿免费看| 亚洲成人黄色在线观看| 五月婷婷亚洲综合|