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
轉載于:https://www.cnblogs.com/douder/p/7237883.html
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的Method getMethod的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Ubuntu 16.04下使用gcc输出
- 下一篇: 基于互联网大数据的管理创新