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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

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



评分

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

查看全部评分

4 个回复

倒序浏览
获取指定构造函数的字节码(构造方法里是什么就用什么的字节码)
需要你传入指定的参数来让jvm知道你要哪种类型的构造函数
8大基本类型+void都有相应的字节码
而他俩的联系是Field字段中 getType() 就是获取包装装类的基本数据类型的字节码

评分

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

查看全部评分

回复 使用道具 举报
你可以用Integer.TYPE的
回复 使用道具 举报
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的字节码。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马