黑马程序员技术交流社区

标题: 反射中,获取指定构造器对象,传入的参数问题 [打印本页]

作者: 倪杭乘    时间: 2012-5-12 13:14
标题: 反射中,获取指定构造器对象,传入的参数问题
反射中,如果创建类要使用有参数的构造函数就需要获取指定构造器
在获取指定构造器的时候,传入参数有个疑问
Constructor constructor = clazz.getConstructor(String.class,int.class);
clazz是字节码对象,要获取String和int的参数构造函数,为什么参数列表里面是String.class,int.class 这个是什么意思
为什么不是Integer.class




作者: 黑马张立国    时间: 2012-5-12 14:18
获取指定构造函数的字节码(构造方法里是什么就用什么的字节码)
需要你传入指定的参数来让jvm知道你要哪种类型的构造函数
8大基本类型+void都有相应的字节码
而他俩的联系是Field字段中 getType() 就是获取包装装类的基本数据类型的字节码


作者: 黑马-王建雨    时间: 2012-5-12 17:09
你可以用Integer.TYPE的
作者: 杨静    时间: 2012-5-13 11:07
getConstructor
public Constructor<T> getConstructor(Class<?>... parameterTypes)
  The parameterTypes parameter is an array of Class objects that identify the constructor's formal parameter types(原始参数类型).
根据定义我们可以知道,Class<?>...parameterTypes 均是Class类型,所以应该是其字节码,而且反射中构造函数与原始构造函数是对应的,原来的构造函数中是int类型,那么就应该用基础类型int的字节码。




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