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

全部博文(164)

文章存档

2017年(2)

2015年(67)

2014年(95)

我的朋友

分类: Java

2015-04-29 15:52:17



点击(此处)折叠或打开

  1. /*
  2.  * 通过配置文件运行类中的方法
  3.  *
  4.  * 反射:
  5.  *         需要有配置文件配合使用。
  6.  *         用class.txt代替。
  7.  *         并且你知道有两个键。
  8.  *             className
  9.  *             methodName
  10.  */
  11. public class Test {
  12.     public static void main(String[] args) throws Exception {
  13.         // 反射前的做法

  14.         // Student s = new Student();

  15.         // s.love();

  16.         // Teacher t = new Teacher();

  17.         // t.love();

  18.         // Worker w = new Worker();

  19.         // w.love();

  20.         // 反射后的做法


  21.         // 加载键值对数据

  22.         Properties prop = new Properties();
  23.         FileReader fr = new FileReader("class.txt");
  24.         prop.load(fr);
  25.         fr.close();

  26.         // 获取数据

  27.         String className = prop.getProperty("className");
  28.         String methodName = prop.getProperty("methodName");

  29.         // 反射

  30.         Class c = Class.forName(className);

  31.         Constructor con = c.getConstructor();
  32.         Object obj = con.newInstance();

  33.         // 调用方法

  34.         Method m = c.getMethod(methodName);
  35.         m.invoke(obj);
  36.     }
  37. }

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