91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

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

發布時間: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

阳朔县| 宁明县| 巴林右旗| 三河市| 肇东市| 关岭| 新乡县| 沧州市| 江油市| 二手房| 德化县| 雅安市| 新竹县| 青浦区| 临沭县| 中江县| 独山县| 肃宁县| 襄汾县| 化州市| 盱眙县| 方山县| 天柱县| 安陆市| 依安县| 青浦区| 阿坝| 沙坪坝区| 广汉市| 怀仁县| 英山县| 兴山县| 承德县| 清镇市| 阿鲁科尔沁旗| 图们市| 灵寿县| 灵山县| 台中市| 榆社县| 仪征市|