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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© xclyijin 中级黑马   /  2015-7-22 16:00  /  275 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 xclyijin 于 2015-7-24 18:37 编辑

利用反射机制获取带参构造函数时,代码如下:红色当中的int.class和String.class是什么意思?为什么不是int和string?int表示的person类中的年龄,string表示的是person类中的姓名。
public static void createNewObject_2() throws InstantiationException, IllegalAccessException, IllegalArgumentException, InvocationTargetException, NoSuchMethodException, SecurityException, ClassNotFoundException
{
  String name="itheima.Person";
  Class clazz=Class.forName(name);
  
  Constructor  constructor=clazz.getConstructor(int.class,String.class);
  Person p=(Person)constructor.newInstance(38,"xiaoming");
}

2 个回复

倒序浏览
试着回答:getConstructor()方法通过参数列表的不同匹配你想反射哪个构造函数,需要知道每一个参数的类型,而这个类型是由对应字节码文件区分的,因为同一个类型的数据(对象)是由同一个字节码文件(.class文件)生成的
回复 举报
a12366456 发表于 2015-7-22 16:21
试着回答:getConstructor()方法通过参数列表的不同匹配你想反射哪个构造函数,需要知道每一个参数的类型 ...

赞一个,之前也没搞明白这个方法
回复 举报
您需要登录后才可以回帖 登录 | 加入黑马