Method.invoke(Object obj, Object ... args) has the following syntax.
public Object invoke(Object obj, Object ... args) throws IllegalAccessException , IllegalArgumentException , InvocationTargetException
In the following code shows how to use Method.invoke(Object obj, Object ... args) method.
import java.lang.reflect.Method; // ww w. j ava 2 s . c om class X { public void objectMethod(String arg) { System.out.println("Instance method: " + arg); } public static void classMethod() { System.out.println("Class method"); } } public class Main { public static void main(String[] args) { try { Class<?> clazz = Class.forName("X"); X x = (X) clazz.newInstance(); Class[] argTypes = { String.class }; Method method = clazz.getMethod("objectMethod", argTypes); Object[] data = { "Hello" }; method.invoke(x, data); // Output: Instance method: Hello method = clazz.getMethod("classMethod", (Class<?>[]) null); method.invoke(null, (Object[]) null); // Output: Class method } catch (Exception e) { System.err.println(e); } } }
The code above generates the following result.