俗話說溫故而知新,今天又重新溫習了下反射機制,java反射基本三步走
1 通過Class.forName()或者.class方法獲取類對象
2 通過Method獲取method對象
3 通過invoke調用對象裏的方法
附:參考之前學習時候的例子代碼
package utils;
import java.lang.reflect.InvocationTargetException;
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 InstantiationException, IllegalAccessException, NoSuchMethodException, SecurityException, IllegalArgumentException, InvocationTargetException {
Class<?> classType = InvokeTester.class;
Object invokeTester = classType.newInstance();
System.out.println(invokeTester instanceof InvokeTester);
Method addMethod = classType.getMethod("add", new Class[] {int.class,int.class});
Object result = addMethod.invoke(invokeTester, new Object[]{1768,2434});
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);
}
}