Student类有一个private构造方法
private Student(String name) { this.name = name; }通过该构造方法暴力反射创建对象
Class<?> c = Class.forName("com.wh.demo11.Student"); Constructor<?> constructor = c.getDeclaredConstructor(String.class); //暴力反射 constructor.setAccessible(true); Object obj = constructor.newInstance("柳岩"); System.out.println(obj);执行结果 不使用暴力反射
Class<?> c = Class.forName("com.wh.demo11.Student"); Constructor<?> constructor = c.getDeclaredConstructor(String.class); //不使用暴力反射 //constructor.setAccessible(true); Object obj = constructor.newInstance("柳岩"); System.out.println(obj);访问权限异常
总结:private修饰的方法是不让外界访问的,在反射中可以通过constructor.setAccessible(true);访问到private构造方法,称为暴力反射 暴力反射破话了访问权限的规则,需要谨慎使用