Android(java)学习笔记108:通过反射获取私有构造方法并且使用

 1 package cn.itcast_02;
 2 
 3 import java.lang.reflect.Constructor;
 4 
 5 /*
 6  * 需求:通过反射获取私有构造方法并使用
 7  * private Person(String name){}
 8  * 
 9  * Person p = new Person("风清扬");
10  * System.out.println(p);
11  */
12 public class ReflectDemo3 {
13     public static void main(String[] args) throws Exception {
14         // 获取字节码文件对象
15         Class c = Class.forName("cn.itcast_01.Person");
16 
17         // 获取私有构造方法对象
18         // NoSuchMethodException:每个这个方法异常
19         // 原因是一开始我们使用的方法只能获取公共的,下面这种方式就可以了。
20         Constructor con = c.getDeclaredConstructor(String.class);
21 
22         // 用该私有构造方法创建对象
23         // IllegalAccessException:非法的访问异常。
24         // 暴力访问
25         con.setAccessible(true);// 值为true则指示反射的对象在使用时应该取消Java语言访问检查。
26         Object obj = con.newInstance("风清扬");
27 
28         System.out.println(obj);
29     }
30 }

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。