Chinaunix首页 | 论坛 | 博客
  • 博客访问: 258258
  • 博文数量: 164
  • 博客积分: 60
  • 博客等级: 民兵
  • 技术积分: 1129
  • 用 户 组: 普通用户
  • 注册时间: 2010-07-09 21:55
文章分类

全部博文(164)

文章存档

2017年(2)

2015年(67)

2014年(95)

我的朋友

分类: Java

2015-04-29 11:39:33



点击(此处)折叠或打开

  1. /*
  2.  * 需求:通过反射获取私有构造方法并使用
  3.  * private Person(String name){}
  4.  *
  5.  * Person p = new Person("风清扬");
  6.  * System.out.println(p);
  7.  */
  8. public class ReflectDemo3 {
  9.     public static void main(String[] args) throws Exception {
  10.         // 获取字节码文件对象

  11.         Class c = Class.forName("cn.lhk.Person");

  12.         // 获取私有构造方法对象

  13.         // NoSuchMethodException:每个这个方法异常

  14.         // Constructor con = c.getConstructor(String.class);



  15.         // 原因是一开始我们使用的方法只能获取公共的,下面这种方式就可以了。

  16.         Constructor con = c.getDeclaredConstructor(String.class);

  17.         // 用该私有构造方法创建对象

  18.         // IllegalAccessException:非法的访问异常。

  19.         // 暴力访问

  20.         con.setAccessible(true);// 值为true则指示反射的对象在使用时应该取消Java语言访问检查。

  21.         Object obj = con.newInstance("风清扬");

  22.         System.out.println(obj);
  23.     }
  24. }

阅读(520) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~