import operate327.Demo;
import operate425.demo.demo1.Student;import java.lang.reflect.Constructor;/*** 通过反射获得类的构造引用无视private修饰符** @author silence*/
public class ClassConstructor {public static void main(String[] args) throws Exception {//获得class 字节码文件引用java.lang.Class<?> clazz = java.lang.Class.forName("operate425.demo.demo1.Student");//获得class 字节码文件引用java.lang.Class<?> clzz1 = Student.class;//获得公共的无参构造/* Constructor<?> constructor = clzz1.getConstructor();//创建对象应用,这里必须传入构造方法所需要的实参Student student = (Student) constructor.newInstance();System.out.print( student.getName());*///获得带公共的参构造器/* Constructor<?> constructor = clazz.getConstructor(int.class);//创建对象应用,这里必须传入构造方法所需要的实参Student student = (Student) constructor.newInstance(23);System.out.println(student.getAge());*///获得私有的无参构造器/*Constructor<?> declaredConstructor = clazz.getDeclaredConstructor();//获得私有的构造器必须先临时关闭访问修饰符的权限declaredConstructor.setAccessible(true);//创建对象应用,这里必须传入构造方法所需要的实参Student student = (Student) declaredConstructor.newInstance();System.out.println(student.getName());*///获得私有的有参构造器/* Constructor<?> declaredConstructor = clazz.getDeclaredConstructor(int.class);//获得私有的构造器必须先临时关闭访问修饰符的权限declaredConstructor.setAccessible(true);//创建对象应用,这里必须传入构造方法所需要的实参Student student = (Student) declaredConstructor.newInstance(65);System.out.println(student.getAge());*/}
}