| 123456789101112131415161718192021222324252627282930 | package J20250806.reflection;import java.lang.reflect.Constructor;import java.lang.reflect.InvocationTargetException;/** * @author WanJl * @version 1.0 * @title ConstructorTest01 * @description  通过反射,获取Person类的私有构造方法并创建对象 * @create 2025/8/6 */public class Demo01_ConstructorTest {    public static void main(String[] args) throws NoSuchMethodException, InvocationTargetException, InstantiationException, IllegalAccessException {        //通过类名.class反射方式获取Person类的Class对象        Class<Person> personClass = Person.class;        //通过personClass对象获取Person类的构造方法,无论是否是私有化的。由于没有填写参数类型,因此是获取无参的        Constructor<Person> personConstructor = personClass.getDeclaredConstructor();        System.out.println(personConstructor);        //如果目标构造方法是私有的,那么需要调用一个方法,增加取消检查标志        personConstructor.setAccessible(true);  //暴力反射        //使用反射,构造方法创建对象        Person person = personConstructor.newInstance();        person.setId(15);        person.setName("张三");        person.setAge(26);        person.setSex("男");        System.out.println(person);    }}
 |