关于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); } }
如果我的回答解决了你的疑惑,请采纳,祝学习愉快~
相似问题