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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 黑马十八期0513 中级黑马   /  2013-1-17 13:14  /  1178 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 姜伟 于 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)
请问这样的构造方法怎样通过反射在来新建对象?或者是无法通过反射来新建对象?

评分

参与人数 1技术分 +1 收起 理由
Rancho_Gump + 1 赞一个!

查看全部评分

2 个回复

倒序浏览
Constructor 提供关于类的单个构造方法的信息以及对它的访问权限。
Constructor 允许在将实参与带有底层构造方法的形参的 newInstance() 匹配时进行扩展转换
这个对象就是一个构造器。
如果楼主非要  看一下实现原理的话,你可以  下个反编译工具,把这个类,给编译成JAVA代码,自己研究一下。

评分

参与人数 1技术分 +1 收起 理由
Rancho_Gump + 1 赞一个!

查看全部评分

回复 使用道具 举报
Constructor con2 =String.class.getConstructor(byte[].class,int.class,int.class);
对应的构造函数是String(byte [] bytes,int offset,int length)

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

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马