2010-10-30 62 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);