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