<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

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 免费看美女被靠到爽的视频| 一级毛片在线免费看| 国产在线19禁免费观看国产| 亚洲国产成人久久| 中字幕视频在线永久在线观看免费| 亚洲综合区图片小说区| 无码区日韩特区永久免费系列| 亚洲人色大成年网站在线观看| 免费无码A片一区二三区| 亚洲国产熟亚洲女视频| 免费看少妇作爱视频| 极品美女一级毛片免费| 亚洲无线观看国产精品| 99re6在线视频精品免费下载| 亚洲理论片在线中文字幕| 天天看免费高清影视| 免费无遮挡无遮羞在线看| 亚洲国产精品SSS在线观看AV| 日韩内射激情视频在线播放免费| 亚洲理论片在线中文字幕| 在线观看视频免费国语| 无码 免费 国产在线观看91| 亚洲精品自在在线观看| 999国内精品永久免费观看| 亚洲综合在线一区二区三区 | 亚洲中文字幕AV在天堂| 国产又粗又长又硬免费视频| 成全在线观看免费观看大全 | 日本亚洲欧洲免费天堂午夜看片女人员 | 相泽南亚洲一区二区在线播放| 国产成人亚洲精品影院| 久久国产色AV免费看| 亚洲精品乱码久久久久久蜜桃图片 | 亚洲午夜精品第一区二区8050| 久久99青青精品免费观看| 国产午夜亚洲精品| 国产亚洲综合久久系列| 成年女人喷潮毛片免费播放| 中文字幕在线视频免费观看| 亚洲国产成人精品无码区在线网站| 国产三级电影免费观看|