- import java.lang.reflect.Method;
- public class InvokeTester
- {
- public int add(int param1, int param2)
- {
- return param1 + param2;
- }
- public String echo(String message)
- {
- return "hello: " + message;
- }
- public static void main(String[] args) throws Exception
- {
- Class<?> classType = InvokeTester.class;
- Object invokeTester = classType.newInstance();
- // System.out.println(invokeTester instanceof InvokeTester); //返回true
- Method addMethod = classType.getMethod("add", new Class[] { int.class,int.class }); //第二个形参表示指定的add方法要接收为int的类型的两个参数
- Object result = addMethod.invoke(invokeTester, new Object[]{1, 2}); //反射调用,将1,2传入InvokeTester.Class的实例invokeTester里的add方法。得返回的结果。
- System.out.println((Integer)result);
- System.out.println("---------------------");
- Method echoMethod = classType.getMethod("echo", new Class[]{String.class});
- Object result2 = echoMethod.invoke(invokeTester, new Object[]{"tom"});
- System.out.println((String)result2);
- }
- }