package J20250806.reflection; import java.lang.reflect.Constructor; import java.util.Arrays; /** * @author WanJl * @version 1.0 * @title Demo06_ConstructorTest * @description 获取构造方法的参数类型以及修饰符 * @create 2025/8/6 */ public class Demo06_ConstructorTest { public static void main(String[] args) throws NoSuchMethodException { //通过类名.class反射方式获取Person类的Class对象 Class personClass = Person.class; //通过personClass对象获取Person类的构造方法,无论是否是私有化的。由于没有填写参数类型,因此是获取无参的 Constructor personConstructor = personClass.getDeclaredConstructor(Integer.class,String.class,Integer.class,String.class); //如果目标构造方法是私有的,那么需要调用一个方法,增加取消检查标志 personConstructor.setAccessible(true); //暴力反射 //获取构造方法的参数类型 getParameterTypes() Class[] parameterTypes = personConstructor.getParameterTypes(); System.out.println(Arrays.toString(parameterTypes)); //获取构造方法的修饰符 getModifiers() int modifiers = personConstructor.getModifiers(); System.out.println(modifiers); //2 表示私有化的修饰符private //获取构造方法参数的个数 getParameterCount() int parameterCount = personConstructor.getParameterCount(); System.out.println("该构造方法共有:"+parameterCount+"个参数"); } }