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