关于getConstructor参数的问题
来源:3-2 Constructor类的概述和使用
不思议的探索者
2020-03-18 16:46:28

请问Class<?>... parameterTypes 是什么意思, <?>... 这个语法不太理解。。。
1回答
同学你好。Class<?>... parameterTypes
Class<?>代表类型,中间的"..."表示无限参数,parameterTypes表示该无限参数的名字
parameterTypes 就是表示参数数组。
如上所示,getConstructor就是获取对应的有参数构造函数。
public class Person {
private int age;
private String name;
public Person( String name,int age) {
this.age = age; /*构造函数Person(有参数)*/
this.name = name;
}
public Person() {
/*构造函数Person(无参数)*/
}
}在调用getConstructor方法时
public class Main {
public static void main(String[] args) throws Exception{
//当我不想 newInstance初始化的时候执行空参数的构造函数的时候
//可以通过字节码文件对象方式 getConstructor(paramterTypes) 获取到该构造函数
String classname="demo2.Person";
//寻找名称的类文件,加载进内存 产生class对象
Class cl=Class.forName(classname);
//获取到Person(String name,int age) 构造函数
//对应的参数类型传入,获取到构造函数的内容
// name age
Constructor con=cl.getConstructor(String.class,int.class);
//通过构造器对象 newInstance 方法对对象进行初始化 有参数构造函数
Object obj=con.newInstance("神奇的我",12);
}
}如果我的回答解决了你的疑惑,请采纳,祝学习愉快~
相似问题