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); } }