NoSuchMethodException:未发现方法异常和IllegalAccessException:非法访问异常
代码演示
public class ReflectDemo {
public static void main(String[] args) throws Exception {
//获取Class对象
Class c1 = Class.forName("com.ginger.demo04.Person");
//获取私有带参构造方法对象
//NoSuchMethodException:没有这样的方法
//Constructor cons = c1.getConstructor(String.class);//只能获取公共方法,所以就报错了。
Constructor cons = c1.getDeclaredConstructor(String.class);//可以获取私有构造方法
//public void setAccessible(boolean flag):值为true,取消 Java 语言访问检查。
//设置为true就可以访问私有构造方法
cons.setAccessible(true);
//IllegalAccessException:非法异常
Object o = cons.newInstance("影流之主");//因为是私有方法不能访问所以报错了。
System.out.println(o);
}
}