请问Java里面的反射思想是如何设计的? 为什么Class就可以指向所有类的对象?里面的方法的调用又是怎样的原理呢?
import java.lang.reflect.Method;
public class DumpMethods
{
public static void main(String[] args) throws Exception
{
Class<?> classType = InvokeTester.class; //这里面的数据结构是怎么指向的
Object invokeTester = classType.newInstance()
Method addMethod = classType.getMethod("add", new Class[] { int.class,
int.class });
Object result = addMethod.invoke(invokeTester, new Object[]{1, 2}); //这又是如何的就可以调用了 对象的方法的呢?
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);
}
}
|
|