The next example calls a class method with 2 arguments:
import java.lang.reflect.Method;
public class Main{
static void invoke(String aClass, String aMethod, Class[] params, Object[] args) {
try {
Class c = Class.forName(aClass);
Method m = c.getDeclaredMethod(aMethod, params);
Object i = c.newInstance();
Object r = m.invoke(i, args);
} catch (Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
invoke("Class1", "say", new Class[] { String.class, String.class }, new Object[] {
new String("Hello"), new String("World") });
}
}
class Class1 {
public void say(String s1, String s2) {
System.out.println(s1 + " " + s2);
}
}
Related examples in the same category