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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 冯培军 中级黑马   /  2012-9-28 00:22  /  1802 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

有如下部分代码:
InputStream is = new FileInputStream("config.properties");
Properties props = new Properties();
props.load(is);
is.close();
String className = props.getProperty("className");    //获取字节码的属性
Collection collections = (Collection)Class.forName(className);    //字节码属性的字节码为什么会是一个集合?

3 个回复

倒序浏览
顽强探索中!
回复 使用道具 举报
这里你没有弄清楚张老师的意思,这里老师的意思是用集合的配置信息来创建相应的集合。
String className = props.getProperty("className");  // 这句是通过键值对中的键来获取值,也就是获取要创建集合的名称。
Collection collection = (Collection) Class.forName(className).newInstance();   // 这里你少些了“.newInstance()”,
有了集合名称之后,就可以通过反射类来创建集合,而不是只拿到它的字节码。
回复 使用道具 举报
Properties  这个类是积聚了IO和集合的特性的,可以很方便的以键值对的方式获取value,
clazzName = java.util.ArrayList    //这里clazzName------>对应的类名称是一个  字符串 知道一个类的完整名称后  我们就可以通过反射来构造其实例,所以这样可以很方便我们
的操作,如果要换成其他的类 只需要修改配置文件中对应键的值就O了。

评分

参与人数 1技术分 +1 收起 理由
王海宇 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马