A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 汪洋大海 中级黑马   /  2014-1-5 16:55  /  933 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 汪洋大海 于 2014-1-5 17:28 编辑

这个是内部类。我想通过反射得到其中x的值。
  1. package question;

  2. class Test5
  3. {
  4.         class Demo
  5.         {
  6.                 int x = 3;
  7.         }
  8.        
  9. }
复制代码

下面是我的做法。

  1. package question;

  2. import java.lang.reflect.Constructor;
  3. import question.Test5.Demo;

  4. public class Test6
  5. {
  6.         public static void main(String[] args) throws Exception
  7.         {
  8.                 Class test5 = Class.forName("question.Test5");
  9.                 Class<Demo> demo = (Class<Demo>) Class.forName("question.Test5$Demo");
  10.                 Constructor constructor = demo.getDeclaredConstructors()[0];
  11.                 constructor.setAccessible(true);
  12.                 Test5.Demo obj = (Test5.Demo)constructor.newInstance(test5.newInstance());
  13.                 System.out.println(obj.x);
  14.         }
  15. }
复制代码



3 个回复

倒序浏览
反射。要学的东西还很多。。
回复 使用道具 举报
同学们可以自己试着写一写。
回复 使用道具 举报
如何内部类被private修饰了反射也得不到。。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马