黑马程序员技术交流社区
标题:
关于框架的思考
[打印本页]
作者:
tintick
时间:
2011-10-3 18:49
标题:
关于框架的思考
张老师视频里有这样一节 框架的概念及反射技术开发框架原理:
我们配置了文件 config.properties 里面写入className=java.util.ArrayList
然后老师有这样一段代码:
InputStream in=new FileInputStream("config.properties");
Properties properties= new Properties();
properties.load(in);
in.close();
String className=properties.getProperty("classNmae");
Collection collection = (Collection)Class.forName(className).newInstance();
就是红色这句我不理解了。既然代码框架开发前并不知道配置文件里面className对应的值是什么。怎么就可以强制转换为collection?
作者:
匿名
时间:
2011-10-3 20:41
我们是不知道配置文件里面className对应的值是什么,但一定是实现了Collection接口的子类,如果不写成
那样,就是配置文件配置错误,那这个框架就没什么意义了
作者:
匿名
时间:
2011-10-3 22:59
前提规定的就是配置文件里的那个类是实现了Collection接口的,不管是什么类,只要实现了Collection接口就行,你也可以用Object类型,这样只要是Object的子类都可以了
作者:
匿名
时间:
2011-10-4 10:31
自己写的当然知道是什么了,,,如果有其他的非集合的 classname,,那加个类型判断就好了,,
Object obj = Class.forName(className).newInstance();
if(obj instanceof Collection ) {
..............
}
在网吧写的,,不知道这代码对不,,,
作者:
匿名
时间:
2011-10-4 10:46
前提是你知道className中的类型是实现了Collection接口的子类,才可以这样强制转换,把object转换成collection后,目的是,子类比父类拥有更多的方法。
Collection collection = (Collection)Class.forName(className).newInstance();
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2