亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

跟王老師學反射(六):使用反射調用方法

發布時間:2020-03-19 18:13:02 來源:網絡 閱讀:293 作者:編程魔法師 欄目:開發技術

學習內容

使用反射調用方法


當獲得某個類對應的Class對象后,就可以通過該Class對象的getMethods()方法或getMethod()方法來獲取全部方法或指定方法,這二個方法的返回值是Method對象數組,或者Method對象。

一、public Object invoke(Object obj,  Object... args)

獲得Method對象后,程序就可以通過該Method來調用對應的方法,在Method里包含一個invoke方法。

該方法中的obj是執行該方法的對象,后面的args是執行該方法時傳入該方法的參數

使用參數 args 在 obj 上指派該對象所表示方法的結果 

二、調用方法例子

1
2
3
4
5
6
7
8
9
10
public static void test4()throws Exception{
        Class<Person> personClass = Person.class;
        Person person = personClass.newInstance();
        //得到setName方法
        Method method = personClass.getMethod("setName", String.class);
        //調用setName,為name賦值
        Object object = method.invoke(person, "wangwu");
        System.out.println(person);
        System.out.println(object);
    }

三、注意事項

當通過Method的invoke方法來調用對應的方法時,Java會要求程序必須有調用該方法的權限,如果 程序確實需要調用某個對象的private方法,可以先調用Method對象的如下方法

  • public void setAccessible(boolean flag):將此對象的 accessible 標志設置為指示的布爾值。值為 true 則指示反射的對象在使用時應該取消 Java 語言訪問檢查。值為 false 則指示反射的對象應該實施 Java 語言訪問檢查。

  • public boolean isAccessible():獲取此對象的 accessible 標志的值。

1
2
3
private void setName(String name) {
        this.name = name;
    }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
public static void test5()throws Exception{
        Class<Person> personClass = Person.class;
        Person person = personClass.newInstance();
        //得到setName方法
        Method method = personClass.getDeclaredMethod("setName", String.class);
        //調用訪問權限檢查
        if(!method.isAccessible()){
            method.setAccessible(true);
        }
        //調用setName,為name賦值
        Object object = method.invoke(person, "wangwu");
        System.out.println(person);
        System.out.println(object);
    }
向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

黄浦区| 鄄城县| 泗水县| 犍为县| 延长县| 民勤县| 永顺县| 灵寿县| 广元市| 瑞昌市| 噶尔县| 寿阳县| 陆川县| 宁强县| 临夏市| 崇文区| 绥滨县| 宣城市| 泸溪县| 合江县| 库车县| 山东| 河津市| 莱州市| 光山县| 惠来县| 敦煌市| 潮州市| 娄底市| 五常市| 繁峙县| 当雄县| 陆川县| 报价| 石泉县| 临湘市| 平泉县| 桃江县| 清水河县| 昭觉县| 东光县|