Java 方法的反射
方法的反射
(1)如何獲取某個方法
方法的名稱和引數列表才能唯一確定某個方法
(2)方法反射放操作
method.invokw(物件,引數列表);
看下面這個 demo
- package practice.Reflect;
- import java.lang.reflect.Method;
- /**
- * @Author: 言曌
- * @Date: 2017/11/17
- * @Time: 上午9:36
- */
- public class MethodDemo1 {
- public static void main(String args[]) {
- //要獲取print(int,int)方法
- //1、要獲取一個方法就是獲取類的資訊,要獲取類的資訊首先要獲取類的類型別
- A a1 = new A();
- Class c = a1.getClass();
- /**
- * 2、獲取方法 名稱和引數列表來決定
- * getMethod()獲取的是public的方法
- * getDelcaredMethod()自己宣告的方法
- */
- try {
- //寫法一
- // Method m = c.getMethod("print",new Class[]{int.class,int.class});
- //寫法二
- Method m = c.getMethod("print",int.class,int.class);
- //之前的操作,非方法的反射
- a1.print(10,20);
- //方法的反射操作,和上面a1.print效果完全相同
- //方法如果沒有返回值,返回null,有返回值返回具體的返回值
- //寫法一
- m.invoke(a1,new Object[]{10,20});
- //寫法二
- m.invoke(a1,10,20);
- System.out.println("----------------------------");
- //獲取方法print(String,String)
- Method m1 = c.getMethod("print",String.class,String.class);
- //用方法進行反射操作
- m1.invoke(a1,"hello","world");
- System.out.println("----------------------------");
- //獲取方法print()
- Method m2 = c.getMethod("print");
- //用方法進行反射
- m2.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());
- }
- }
在 A 類中有三個方法,同名但是引數不同。
平時我們要呼叫他們只需要
A a1 = new A();
a1.print(10,20);即可
現在我們通過反射的方式
先要獲取類的類型別,然後再獲取的其指定的方法
A a1 = new A();
Class c = obj.getClass();
Method m = c.getMethod("print",int.class,int.class);
m.invoke(a1);
通過反射的方式得到的結果和 a1.print() 方式是一樣的。
相關文章
- java反射構建物件和方法的反射呼叫Java反射物件
- Java反射與hook混用反射某支付的方法Java反射Hook
- Java反射—方法的反射、深入瞭解泛型Java反射泛型
- java對過反射呼叫方法Java反射
- 【譯】5. Java反射——方法Java反射
- Java的反射Java反射
- java反射呼叫set和get方法的通用類Java反射
- 借用Java的Invoke反射,帶呼叫其他類的方法Java反射
- java反射——反射AnnotationJava反射
- 【Java 反射學習】Java 反射基礎Java反射
- [Java 反射學習] Java 反射基礎Java反射
- Java 反射Java反射
- Java——反射Java反射
- Java反射Java反射
- Java反射—初探反射基礎Java反射
- Java反射與反射優化Java反射優化
- 說說java的反射Java反射
- Java的反射機制Java反射
- Java反射的應用Java反射
- 反射+Class類方法_利用反射分析類的能力反射
- Java反射機制(得到所有的構造方法)Java反射構造方法
- Java 反射原理Java反射
- Java反射-模組Java反射
- java反射——FieldJava反射
- Java之反射Java反射
- java反射(2)Java反射
- java反射示例Java反射
- Java 反射 APIJava反射API
- JAVA的反射機制==>用反射分析類的實現Java反射
- 淺析Java反射--JavaJava反射
- 淺談java中的反射Java反射
- 淺談Java的反射原理Java反射
- Java 中的 反射機制Java反射
- java反射—— 對類的分析Java反射
- 【Java面試指北】反射(1) 初識反射Java面試反射
- Java筆記-Java反射(二)Java筆記反射
- Java基礎系列—Java反射Java反射
- PHP --反射 --獲取類的方法PHP反射