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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 考拉是只猫 中级黑马   /  2014-12-2 21:50  /  1493 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

框架解决的核心问题:对于不知道类名的类,就不能直接new 的方式创建他的实例对象了,
这时,使用反射来调用不知道类名的类。

练习:通过采用配置文件和反射方式创建ArrayList或HashSet的实例对象。
思路:采用类加载器的方式管理资源和配置文件。
通过里加载器来加载配置文件,Java在一个类在执行的时候,Java系统通过类加载器在类文件的目录下逐个查找
要执行的类,找到后就将该类的.class文件加载到Java虚拟机中运行。我们可以利用这种方式将Java程序的配置
文件放到.class的根目录下,然后让类加载器扫描并能够加载该文件。

  1. // 反射方式创建ArrayList或HashSet的实例对象
  2. // 两种方式
  3. // 第一种 使用反射获得类加载器,并加载配置文件
  4. ClassLoader loader=ReflectFrame.class.getClassLoader();
  5. InputStream ips = loader.getResourceAsStream("com/itheima/config.properties");
  6. // 第二种 ,直接指定文件名即可其内部实现也是调用的类加载器
  7. // InputStream ips=ReflectFrame.class.getResourceAsStream("config.properties");

  8. Properties props = new Properties();
  9. props.load(ips);// 加载配置文件键值对
  10. String className = props.getProperty("className");

  11. // 通过配置文件提供的类名创建Collection对象
  12. Collection collection = (Collection)        Class.forName(className).newInstance();
  13. collection.add("aaa");
  14. collection.add("sss");

  15. System.out.println(collection);//[aaa, sss]
复制代码



1 个回复

倒序浏览
沈阳癫痫病症状 http://hope.mnwww.com/sydx/bx/
锦州癫痫病医院 http://haoyy.yuqinge.com/sydx/jzdx/
沈阳儿童癫痫病 http://health.lzbs.com.cn/dxb/et/
沈阳癫痫病护理 http://jk99.zhong5.cn/shenyang/hl/
沈阳癫痫病频繁发作怎么办 http://baike.01ny.cn/dxb/fazuo/
沈阳癫痫病的危害 http://health.lzbs.com.cn/dxb/weihai/
吉林癫痫病医院 http://haoyy.yuqinge.com/ccdx/jldx/
沈阳腹痛型癫痫 http://health.lzbs.com.cn/dxb/futong/
沈阳癫痫病治疗医生 http://jkbk.thmz.com/sydxbyy/ys/
沈阳癫痫病治疗 http://jk99.zhong5.cn/shenyang/zl/
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马