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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 衣带赞 中级黑马   /  2013-11-20 19:01  /  1216 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

因为框架是先于类产生的,所以在框架中要new某个类,就要用反射的机制来实现。通过编写一个config文件,在里面放键值对,然后用Porperties类中的load方法可以加载进内存,然后用Class.forName(String value)得到以后编写的某个类的.class文件对象,再用getContructor.newInstance()来创建新类的对象。
可是这只能产生一个无参数的对象,如果新的类中的构造函数只能通过接收某些参数来构造,如getContructor.newInstance(<Class>T ... obj),那如何知道新类需要接收哪些参数呢?如何得到那个新类的对象呢?同时反射中Feild类中的get方法,Method类中的invoke方法都要用到对象,这个对象必定是能创建出来的,可是如何在新类编写前创建呢?

评分

参与人数 1技术分 +1 收起 理由
To + 1

查看全部评分

3 个回复

正序浏览
将你的字节码传过去,然后修改配置文件
回复 使用道具 举报
框架不需要知道你要传递什么参数,
框架说白了就是让你调用一个方法就可以完成一连串的已定义的操作,
所以它需要的参数都可以通过配置文件读取
比如 getContructor.newInstance(<Class>T ... obj)
它只要把读取的参数接收之后放进一个数组里,比如Object[] params
然后直接 getConstructor.newInstance(params)就可以了
回复 使用道具 举报
新人问得问题真是够深的。等待大牛来解答
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马