Method getMethod(String name, Class<?>... parameterTypes)
--返回一個 Method 對象,它反映此 Class 對象所表示的類或接口的指定公共成員方法。
方法后面接收的就是Class類的對象,而如:String.class、int.class這些字節碼才是Class類的對象
也可以此種方式:
//getMethod第一個參數是方法名,第二個參數是該方法的參數類型,
//因為存在同方法名不同參數這種情況,所以只有同時指定方法名和參數類型才能唯一確定一個方法
Method method = XXX.getClass().getMethod(methodName,new Class[0]);
//第一個參數是具體調用該方法的對象
//第二個參數是執行該方法的具體參數
如一個函數 int Test(int a, String str);
對應的getMethod方法:
1. getMethod("Test",int.class,String.class);
2. getMethod("Test",new Class[]{int.class,String.class});
然后通過invoke來調用此方法:
函數原型:Object Java.lang.reflect.Method.invoke(Object receiver, Object... args)
//Method類的invoke(Object obj,Object args[])方法接收的參數必須為對象,
//如果參數為基本類型數據,必須轉換為相應的包裝類型的對象。invoke()方法的返回值總是對象,
//如果實際被調用的方法的返回類型是基本類型數據,那么invoke()方法會把它轉換為相應的包裝類型的對象,再將其返回
receiver:該方法所在類的一個對象
args: 傳入的參數 如 100,“hello”
詳細參見:http://www.linuxidc.com/Linux/2009-09/21571.htm