A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 黑马_许芸 中级黑马   /  2012-9-7 19:28  /  1076 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马