黑马程序员技术交流社区

标题: 反射中新建对象的问题 [打印本页]

作者: 黑马十八期0513    时间: 2013-1-17 13:14
标题: 反射中新建对象的问题
本帖最后由 姜伟 于 2013-1-18 11:09 编辑

Constructor con1 = String.class.getConstructor(StringBuffer.class);返回的构造方法是String(StringBuffer buffer)
可以通过(String)con1.newInstance(new StirngBuffer("abc"));来新建String对象。

Constructor con2 =String.class.getConstructor(byte[].class,int.class,int.class);返回的构造方法是String(byte [] bytes,int offset,int length)
请问这样的构造方法怎样通过反射在来新建对象?或者是无法通过反射来新建对象?

作者: 王少雷    时间: 2013-1-17 13:28
Constructor 提供关于类的单个构造方法的信息以及对它的访问权限。
Constructor 允许在将实参与带有底层构造方法的形参的 newInstance() 匹配时进行扩展转换
这个对象就是一个构造器。
如果楼主非要  看一下实现原理的话,你可以  下个反编译工具,把这个类,给编译成JAVA代码,自己研究一下。
作者: 刘军亭    时间: 2013-1-17 15:40
Constructor con2 =String.class.getConstructor(byte[].class,int.class,int.class);
对应的构造函数是String(byte [] bytes,int offset,int length)

第一句话就是得到Constructor 对象,既然得到了Constructor对象,那就找对象肯定有new对象的方法,con2就是你得到的对象,用对象con2.newInstance(相应的参数);就可以创建对象了






欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2