Method getMethod


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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM