一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

Java中Method.invoke方法,反射?

 一本正經地胡鬧 2019-07-01

  正常來說,我們調用對象的方法是通過dot運算符來進行的,這里我們介紹另一種方法,有以下幾個步驟:1,獲取該類的Class Type;2,通過getMethod方法獲取Method對象;3,通過調用invoke方法來執(zhí)行對象的某個方法;這里要特別注意下getMethod方法和invoke方法的參數(shù),見下面的例子

復制代碼
 1 package reflectTest;
 2 
 3 import java.lang.reflect.Method;
 4 
 5 /**
 6  * 通過獲取類類型,進而獲取Method對象,進而調用類的方法,
 7  * 和直接通過類的對象來調用方法可以達到一樣的效果,這里的示例調用了對象的三個方法
 8  * @author Wang
 9  *
10  */
11 public class MethodDemo1 {
12     public static void main(String[] args) {
13         
14         // 1.要獲取一個方法就是獲取類的信息,獲取類的信息首先要獲取類的類類型,要獲取print(int ,int )方法
15         A a1 = new A();
16         Class c = a1.getClass();
17         
18         // 2.獲取方法 名稱和參數(shù)列表來決定 getMethod獲取的是public的方法 getDelcaredMethod自己聲明的方法
19         try {
20             System.out.println("==================調用print(int a, int b)方法");
21             // Method m = c.getMethod("print", new Class[]{int.class,int.class});
22             Method m = c.getMethod("print", int.class, int.class);
23             // 方法的反射操作
24             // a1.print(10, 20);方法的反射操作是用m對象來進行方法調用 和a1.print調用的效果完全相同
25             // 方法如果沒有返回值返回null,有返回值返回具體的返回值
26             // Object o = m.invoke(a1,new Object[]{10,20});
27             Object o = m.invoke(a1, 10, 20);
28             
29             
30             System.out.println("==================調用print(String a, String b)方法");
31             
32             
33             // 獲取方法print(String,String)
34             Method m1 = c.getMethod("print", String.class, String.class);
35             // 用方法進行反射操作
36             // a1.print("hello", "WORLD");
37             o = m1.invoke(a1, "hello", "WORLD");
38             
39             
40             System.out.println("===================調用無參的print方法");
41             
42             
43             // Method m2 = c.getMethod("print", new Class[]{});
44             Method m2 = c.getMethod("print");
45             // m2.invoke(a1, new Object[]{});
46             m2.invoke(a1);
47             
48             
49         } catch (Exception e) {
50             // TODO Auto-generated catch block
51             e.printStackTrace();
52         }
53 
54     }
55 }
56 
57 class A {
58     public void print() {
59         System.out.println("helloworld");
60     }
61 
62     public void print(int a, int b) {
63         System.out.println(a + b);
64     }
65 
66     public void print(String a, String b) {
67         System.out.println(a.toUpperCase() + "," + b.toLowerCase());
68     }
69 }
復制代碼

 

    本站是提供個人知識管理的網絡存儲空間,所有內容均由用戶發(fā)布,不代表本站觀點。請注意甄別內容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內容,請點擊一鍵舉報。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    欧美成人免费一级特黄| 福利新区一区二区人口| 日本乱论一区二区三区| 中文文精品字幕一区二区| 精品少妇人妻av一区二区蜜桃| 国产精品国产亚洲看不卡| 午夜福利网午夜福利网| 好吊色欧美一区二区三区顽频| 国产亚洲精品香蕉视频播放| 国产目拍亚洲精品区一区| 国产一区一一一区麻豆| 日韩国产欧美中文字幕| 国产精品久久精品国产| 亚洲日本韩国一区二区三区| 日本高清二区视频久二区| 国产伦精品一区二区三区高清版 | 精品国产日韩一区三区| 亚洲天堂一区在线播放| 亚洲丁香婷婷久久一区| 99久久精品免费精品国产| 中文字幕乱码亚洲三区| 欧美日韩国产精品自在自线| 午夜精品久久久免费视频| 中文字幕一区二区免费| 国产成人av在线免播放观看av| 91亚洲国产成人久久| 亚洲中文字幕在线观看四区 | 欧美做爰猛烈叫床大尺度| 高清免费在线不卡视频| 精品国产亚洲区久久露脸| 97人摸人人澡人人人超碰| 成人精品欧美一级乱黄| 免费在线观看欧美喷水黄片| 我要看日本黄色小视频| 在线亚洲成人中文字幕高清| 中国美女偷拍福利视频| 老司机精品国产在线视频| 五月婷婷综合缴情六月| 自拍偷女厕所拍偷区亚洲综合| 国产成人免费高潮激情电| 九九热精品视频在线观看 |