views:

47

answers:

2

Hi Guys,

I am actually looking at getting the method, whose name is stored in the string "methodName", from the Class "CC1" using Java Reflection.

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

This is the syntax. The problem is the method takes no parameter. How do I represent that in the parameterTypes ?

where parameterTypes is the array of Class

Similarly, the below code will invoke that method.

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

The arglist is array of Objects which again has to be nothing.

If anything is unclear , please ask. Thanks .

+3  A: 

Don't pass the second argument:

CC1.getMethod(methodName);

(This makes use of varargs)

This is equivalent to passing an empty array:

CC1.getMethod(methodName, new Class[] {});
Bozho
Not passing the second argument will give compiler error. Since I have a larger code base, I wont be able to test the code by passing the empty array also .
bsoundra
it will _not_ result in a compile-time error, unless you are using Java 1.4
Bozho
+1  A: 

The signature is:

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

So just leave the second parameter out and it should work. i.e.

Method actualMethod= CC1.getMethod(methodName);
Adrian Smith