Class类
成员方法
public Constructor getConstructor(Class... params);<br /> 根据参数列表,获取对应的构造器对象(仅公共构造函数)<br /> public Constructor getDeclaredConstructor(class... params);<br /> 根据参数列表,获取对应的构造器对象(包含私有构造函数)<br /> public Constructor getConstructors();<br /> 获取此类的所有构造函数(不包含私有)
Constructor类:构造器类
概述
属于java.base模块下的java.lang.reflect包下的类
成员方法
public String getName(); 获取构造参数名<br /> public T newInstances(Object... params); 根据此构造函数和指定参数创建对象
案例
public class ReflectDemo1 {
public static void main(String[] args) throws Exception{
//需求:通过放射的方式创建:Student类型的对象
//1.获取Student类的字节码文件对象
Class clazz = Class.forName("Note.Student");
//2.根据第一步获取到的字节码文件对象,获取指定的构造器对象
/* //2.1获取公共的无参构造
Constructor con1 = clazz.getConstructor();
System.out.println(con1);
//2.2获取公共的有参构造
Constructor con2 = clazz.getConstructor(String.class);
System.out.println(con2);
//2.3获取私有的有参构造
Constructor con3 = clazz.getDeclaredConstructor(int.class);
System.out.println(con3);
//2.4获取Student类所有公共构造参数
Constructor cons [] = clazz.getConstructors();
for (Constructor con : cons) {
System.out.println(con);
}*/
//2.2获取公共的有参构造
Constructor con2 = clazz.getConstructor(String.class);
System.out.println(con2);
//获取构造器的名字
System.out.println(con2.getName());
//3.根据构造器对象和参数,创建对应的Student对象
Student stu =(Student) con2.newInstance("张三");
//4.打印结果
System.out.println(stu);
}
}