激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|編程技術|正則表達式|C/C++|

服務器之家 - 編程語言 - JAVA教程 - java反射之方法反射的基本操作方法

java反射之方法反射的基本操作方法

2020-11-06 21:14Java教程網 JAVA教程

下面小編就為大家帶來一篇java反射之方法反射的基本操作方法。小編覺得挺不錯的,現在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

本文接上文“java反射之獲取類的信息方法(推薦)”,利用反射(invoke)來獲取一個類中的方法來執行。

1、定義一個類,包含三個名稱相同,參數不同的方法

java" id="highlighter_142475">
?
1
2
3
4
5
6
7
8
9
10
11
12
class A{
  public void print(){
    System.out.println("Hello,World");
  }
 
  public void print(int a,int b){
    System.out.println(a+b);
  }
  public void print(String a,String b){
    System.out.println(a.toUpperCase()+","+b.toLowerCase());
  }
}

2、利用方法的反射(invoke)分別獲取該類三個方法并執行

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
public class Test {
  public static void main(String[] args) {
    /**
     * 獲取print(int,int)方法
     * 1、獲取類的類類型
     */
    A a1 = new A();
    Class clazz = a1.getClass();
    /**
     * 2、獲取方法(名稱、參數列表)
     * getMethod()獲取的是public方法
     * getDeclaredMethod()獲取的是自己聲明的方法
     */
    try {
//      Method m = clazz.getMethod("print",new Class[]{int.class,int.class});
      Method m = clazz.getMethod("print", int.class, int.class);
      //方法的反射操作,用m對象進行方法調用,a1.print完全相同
      //方法沒有返回值返回null,有返回值返回具體的返回值
//      Object obj = m.invoke(a1,new Object[]{10,20});
      Object obj = m.invoke(a1,10,20);
 
      System.out.println("================================================");
 
      Method m2 = clazz.getMethod("print", String.class, String.class);
      m2.invoke(a1,"aaa","BBB");
 
      System.out.println("================================================");
 
      Method m3 = clazz.getMethod("print");
      m3.invoke(a1);
    } catch (Exception e) {
      e.printStackTrace();
    }
  }
}

3、完整代碼

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
package com.format.test;
 
import java.lang.reflect.Method;
 
/**
 * Created by Format on 2017/6/3.
 */
public class Test {
  public static void main(String[] args) {
    /**
     * 獲取print(int,int)方法
     * 1、獲取類的類類型
     */
    A a1 = new A();
    Class clazz = a1.getClass();
    /**
     * 2、獲取方法(名稱、參數列表)
     * getMethod()獲取的是public方法
     * getDeclaredMethod()獲取的是自己聲明的方法
     */
    try {
//      Method m = clazz.getMethod("print",new Class[]{int.class,int.class});
      Method m = clazz.getMethod("print", int.class, int.class);
      //方法的反射操作,用m對象進行方法調用,a1.print完全相同
      //方法沒有返回值返回null,有返回值返回具體的返回值
//      Object obj = m.invoke(a1,new Object[]{10,20});
      Object obj = m.invoke(a1,10,20);
 
      System.out.println("================================================");
 
      Method m2 = clazz.getMethod("print", String.class, String.class);
      m2.invoke(a1,"aaa","BBB");
 
      System.out.println("================================================");
 
      Method m3 = clazz.getMethod("print");
      m3.invoke(a1);
    } catch (Exception e) {
      e.printStackTrace();
    }
  }
}
 
class A{
  public void print(){
    System.out.println("Hello,World");
  }
 
  public void print(int a,int b){
    System.out.println(a+b);
  }
  public void print(String a,String b){
    System.out.println(a.toUpperCase()+","+b.toLowerCase());
  }
}

4、執行結果

java反射之方法反射的基本操作方法

以上這篇java反射之方法反射的基本操作方法就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持服務器之家。

延伸 · 閱讀

精彩推薦
  • JAVA教程java運行shell腳本方法示例

    java運行shell腳本方法示例

    利用Runtime.execute方法,我們可以在Java程序中運行Linux的Shell腳本,或者執行其他程序 ...

    java教程網5822019-10-24
  • JAVA教程SpringBoot整合JPA的實例代碼

    SpringBoot整合JPA的實例代碼

    本篇文章主要介紹了SpringBoot整合JPA的實例代碼,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧...

    方志朋3892020-09-24
  • JAVA教程Java關鍵字this(動力節點Java學院整理)

    Java關鍵字this(動力節點Java學院整理)

    java中的this隨處可見,用法也多。通常情況下理解this關鍵字還是很容易的,但是在我初學的時候,有一個疑問卻一直不能很清晰的理解,現在慢慢的理解了...

    Java之家4412020-09-04
  • JAVA教程Java實現簡單堆棧代碼

    Java實現簡單堆棧代碼

    這篇文章主要為大家詳細介紹了Java實現簡單堆棧代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下 ...

    FrankYou3612020-07-10
  • JAVA教程Java Scanner類的使用示例

    Java Scanner類的使用示例

    這篇文章主要介紹了Java Scanner類的使用示例,幫助大家更好的理解和學習java,感興趣的朋友可以了解下...

    算法與編程之美5042020-08-17
  • JAVA教程JDBC環境設置(中文詳解)

    JDBC環境設置(中文詳解)

    要開始使用JDBC設置,按照以下所示的步驟開發JDBC環境。以下內容假設Windows平臺上 ...

    java技術網3502019-11-14
  • JAVA教程Java Date類常用示例_動力節點Java學院整理

    Java Date類常用示例_動力節點Java學院整理

    在JDK1.0中,Date類是唯一的一個代表時間的類,但是由于Date類不便于實現國際化,所以從JDK1.1版本開始,推薦使用Calendar類進行時間和日期處理。這里簡單介...

    動力節點3302020-09-22
  • JAVA教程Springboot web項目打包實現過程解析

    Springboot web項目打包實現過程解析

    這篇文章主要介紹了Springboot web項目打包實現過程解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以...

    Auler4732020-08-31
主站蜘蛛池模板: 精品中文字幕视频 | 懂色av懂色aⅴ精彩av | 性大片1000免费看 | 国产婷婷一区二区三区 | 成人福利视频网站 | 无码av女优| 99这里精品 | 激情综合网俺也去 | 国产二区三区视频 | 极品xxxx欧美一区二区 | 影视免费观看 | asian gaysex| 国产精品99久久久久久久 | 91久久久久 | 日韩视频在线观看免费视频 | 国产精品久久久久久久久久久久久久久 | 久久精品女人天堂av | 亚洲资源网 | 国产激情视频在线 | a视频在线免费观看 | 一区二区三区国产好的精 | 电影av在线 | 久久久婷婷一区二区三区不卡 | 91网站在线观看视频 | 成人在线视频在线观看 | 成人三级电影网站 | 久久精品国产99国产精品亚洲 | 99这里有精品 | 午夜免费一区 | 日韩精品一区二 | 中日韩乱码一二新区 | 日本在线播放一区二区三区 | 国产91亚洲精品久久久 | 国产一区二区在线免费 | 久草热久草视频 | 亚洲第九十九页 | 激情视频免费观看 | 国产精品一区二区三区99 | 亚洲午夜影院在线观看 | 久久精品首页 | 狠狠操天天射 |