反射_通过反射获取私有构造方法并使用

来源:互联网 发布:卖家申请淘宝介入后果 编辑:IT博客网 时间:2019/12/06 10:50
package cn.itcast_02;import java.lang.reflect.Constructor;/* * 需求:通过反射获取私有构造方法并使用 * private Person(String name)  *  * Person p = new Person("风清杨"); * Systme.out.println(p); */public class ReflectDemo3 {public static void main(String[] args) throws Exception {// 获取字节码文件对象Class c = Class.forName("cn.itcast_01.Person");// 获取私有带参构造方法对象// NoSuchMethodException:没有这个方法异常// 原因是我们一开始使用的方法只能获取公共的,下面这种方式就可以了。// Constructor con = c.getConstructor(String.class);Constructor con = c.getDeclaredConstructor(String.class);// 通过私有带参构造方法对象创建对象// IllegalAccessException:非法的访问异常// 暴力访问con.setAccessible(true);// 值为true则指示反射的对象在使用时应该取消Java语言访问检查。Object obj = con.newInstance("风清杨");System.out.println(obj);}}

0 0