2010-10-30 80 views
0

我實際上正在研究如何使用Java Reflection從類「CC1」中獲取名稱存儲在字符串「methodName」中的方法。Empty Class Array的表示

Method actualMethod= CC1.getMethod(methodName, parameterTypes);

這是語法。問題是該方法不帶參數。我如何在參數類型中表示這一點?

其中parameterTypes是

陣列類似地,下面的代碼將調用該方法。

Object retobj = actaulMethod.invoke(actualObject, arglist);

的arglist中是陣列對象,再次必須是什麼。

如果有什麼不清楚的地方,請詢問。謝謝 。

+0

對於invoke方法也是同樣的方法。多謝你們。 – bsoundra 2010-10-30 08:49:51

+0

您的標題有誤導性。你指的是一個空的數組類,而不是一個空類......這是一個矛盾的術語。 – EJP 2010-10-31 02:40:27

+0

@ EJP:你是對的。我已適當修改了標題。 – bsoundra 2010-11-01 02:32:18

回答

3

不通過第二個參數:

CC1.getMethod(methodName); 

(這利用的varargs

這等效於通過一個空數組:

CC1.getMethod(methodName, new Class[] {}); 
+0

不傳遞第二個參數會導致編譯器錯誤。由於我有更大的代碼庫,我不能通過傳遞空數組來測試代碼。 – bsoundra 2010-10-30 08:40:42

+2

它將不會導致編譯時錯誤,除非您使用Java 1.4 – Bozho 2010-10-30 08:41:41

1

簽名是:

Method getMethod(String name, Class... parameterTypes) 

所以,只需保留第二個參數,它應該可以工作。即

Method actualMethod= CC1.getMethod(methodName);