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

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

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

    (轉)reflect

     

    import java.lang.reflect.Constructor;

    import java.lang.reflect.Field;

    import java.lang.reflect.Method;





    /**

     * Java Reflection Cookbook

     *

     * 
    @author Michael Lee

     * 
    @since 2006-8-23

     * 
    @version 0.1a

     
    */



    public class Reflection {

        
    /**

         * 得到某個對象的公共屬性

         *

         * 
    @param owner, fieldName

         * 
    @return 該屬性對象

         * 
    @throws Exception

         *

         
    */

        
    public Object getProperty(Object owner, String fieldName) throws Exception {

            Class ownerClass 
    = owner.getClass();



            Field field 
    = ownerClass.getField(fieldName);



            Object property 
    = field.get(owner);



            
    return property;

        }



        
    /**

         * 得到某類的靜態公共屬性

         *

         * 
    @param className   類名

         * 
    @param fieldName   屬性名

         * 
    @return 該屬性對象

         * 
    @throws Exception

         
    */

        
    public Object getStaticProperty(String className, String fieldName)

                
    throws Exception {

            Class ownerClass 
    = Class.forName(className);



            Field field 
    = ownerClass.getField(fieldName);



            Object property 
    = field.get(ownerClass);



            
    return property;

        }





        
    /**

         * 執行某對象方法

         *

         * 
    @param owner

         *            對象

         * 
    @param methodName

         *            方法名

         * 
    @param args

         *            參數

         * 
    @return 方法返回值

         * 
    @throws Exception

         
    */

        
    public Object invokeMethod(Object owner, String methodName, Object[] args)

                
    throws Exception {



            Class ownerClass 
    = owner.getClass();



            Class[] argsClass 
    = new Class[args.length];



            
    for (int i = 0, j = args.length; i < j; i++) {

                argsClass[i] 
    = args[i].getClass();

            }



            Method method 
    = ownerClass.getMethod(methodName, argsClass);



            
    return method.invoke(owner, args);

        }





          
    /**

         * 執行某類的靜態方法

         *

         * 
    @param className

         *            類名

         * 
    @param methodName

         *            方法名

         * 
    @param args

         *            參數數組

         * 
    @return 執行方法返回的結果

         * 
    @throws Exception

         
    */

        
    public Object invokeStaticMethod(String className, String methodName,

                Object[] args) 
    throws Exception {

            Class ownerClass 
    = Class.forName(className);



            Class[] argsClass 
    = new Class[args.length];



            
    for (int i = 0, j = args.length; i < j; i++) {

                argsClass[i] 
    = args[i].getClass();

            }



            Method method 
    = ownerClass.getMethod(methodName, argsClass);



            
    return method.invoke(null, args);

        }







        
    /**

         * 新建實例

         *

         * 
    @param className

         *            類名

         * 
    @param args

         *            構造函數的參數

         * 
    @return 新建的實例

         * 
    @throws Exception

         
    */

        
    public Object newInstance(String className, Object[] args) throws Exception {

            Class newoneClass 
    = Class.forName(className);



            Class[] argsClass 
    = new Class[args.length];



            
    for (int i = 0, j = args.length; i < j; i++) {

                argsClass[i] 
    = args[i].getClass();

            }



            Constructor cons 
    = newoneClass.getConstructor(argsClass);



            
    return cons.newInstance(args);



        }





        

        
    /**

         * 是不是某個類的實例

         * 
    @param obj 實例

         * 
    @param cls 類

         * 
    @return 如果 obj 是此類的實例,則返回 true

         
    */

        
    public boolean isInstance(Object obj, Class cls) {

            
    return cls.isInstance(obj);

        }

        

        
    /**

         * 得到數組中的某個元素

         * 
    @param array 數組

         * 
    @param index 索引

         * 
    @return 返回指定數組對象中索引組件的值

         
    */

        
    public Object getByArray(Object array, int index) {

            
    return Array.get(array,index);

        }

    }

    posted on 2011-05-04 23:16 liujg 閱讀(131) 評論(0)  編輯  收藏 所屬分類: Java基礎

    <2025年5月>
    27282930123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

    導航

    統計

    常用鏈接

    留言簿(1)

    隨筆分類

    隨筆檔案

    文章分類

    文章檔案

    相冊

    收藏夾

    boddiy

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 新最免费影视大全在线播放| 亚洲人成www在线播放| 香蕉视频免费在线播放| 免费看美女被靠到爽的视频| 亚洲最大无码中文字幕| 最近中文字幕无免费视频| 亚洲看片无码在线视频| 好男人www免费高清视频在线| 亚洲AV无码乱码麻豆精品国产| 57PAO成人国产永久免费视频| 精品国产日韩久久亚洲| 精品免费国产一区二区三区| 韩国亚洲伊人久久综合影院| 亚洲AⅤ无码一区二区三区在线 | 黄瓜视频影院在线观看免费| 亚洲婷婷天堂在线综合| 免费国产黄线在线观看| 337P日本欧洲亚洲大胆精品| 亚洲男人的天堂在线va拉文 | 免费在线观看视频网站| 亚洲综合色区中文字幕| 成年女人永久免费观看片| 羞羞视频在线观看免费| 亚洲色图国产精品| 成人免费无码大片a毛片软件| 粉色视频在线观看www免费| 亚洲日韩精品一区二区三区| 99re在线免费视频| 亚洲精品无码专区在线| 精品亚洲一区二区三区在线观看| 久爱免费观看在线网站| 亚洲午夜国产精品| 亚洲精品动漫人成3d在线| 一级毛片在线观看免费| 久久精品亚洲日本波多野结衣| 国产亚洲AV夜间福利香蕉149 | 国产精品色午夜视频免费看| 中文字幕免费在线看线人动作大片| 亚洲自偷精品视频自拍| 免费观看亚洲人成网站| 久久精品人成免费|