java学习日记day07---反射之暴力反射

    科技2022-07-15  128

    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构造方法,称为暴力反射 暴力反射破话了访问权限的规则,需要谨慎使用

    Processed: 0.014, SQL: 8