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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© wupingtanlu 中级黑马   /  2012-5-5 08:44  /  2010 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

Class c=null;
try{
c=Class.forName("ch.Person");
Object obj=c.newInstance();
Constructor con=c.getDeclaredConstructor(String.class,int.class);
上面代码中的:
字节码c是Person在内存中的一个映射。
Object obj=c.newInstance();这行代码其实就是实例化了一个Person类,obj就是Person类的对象,
Constructor con=c.getDeclaredConstructor(String.class,int.class);这行代码就是Person类的一个构造方法
这个构造方法接收两个参数,一个String类型,一个int类型
String.class就是传入的String类型的字节码
int.class就是传入的int类型的字节码
因为都是使用的字节码所以 构造函数的参数也要用到字节码 !

请各位大侠指正补充!

评分

参与人数 1技术分 +1 收起 理由
贠(yun)靖 + 1

查看全部评分

3 个回复

倒序浏览
恩,理解的不错
回复 使用道具 举报
Object obj=c.newInstance();  这个直接用字节码对象  调用newInstance 创建对象  是只能创建无参的构造方法创建对象
  如果要创建有参 的构造放法的对象的话  就得用你下面哪种情况了  也就是获得某个有参数的构造方法的字节码对象  再newInstance() 创建相对应的实例对象
回复 使用道具 举报
有条语句错了,Object obj=c.newInstance();
c 是Class对象调用不了newInstance()方法,只有Constructor对象才能调用newInstance()方法。应该在Constructor con=c.getDeclaredConstructor(String.class,int.class);后接Object obj=con.newInstance();
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马