------<ahref="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------
黑马程序员——基础加强——反射的作用,实现框架功能
1、 框架与框架要解决的核心问题,
我做贩房子给用户住,由用户自己安装门窗和空调,我做的房子就是框架,用户需要使用我的框架,把门窗插入我提供的框架中,框架与工具有区别,工具类被用户做调用,而框架就是调用用户的类。
2、 框架要解决的核心问题:
在写框架(房子)的时候,你这个用户可能还在上学,还不回写程序呢,我写的框架怎么样能调动你写的类呢,因为在写程序是无法做到要被调用的类名,所以在程序中无法直接new某个类的实例对象了。而要用反射方法来做。
3、综合案例:
先直接用new语句创建arrayList和HashSet的实例对象。演示用Eclipse自动生成reflectPoint类的equals和hashcode方法,比较两个集合的运算结果差异;然后改为采用配置文件加反射的方式创建ArrayList和HashSet的实例对象,比较运行结果差异。引入Eclipse对资源文件的管理方式的讲解。
public class DemoTest{
public static void main(String args[])throwsException{
InputStream ips=newFileInputStream("config.properties");
Properties props=new Properties();
ips.close();
StringclassName=props.getProperty("className");
Collectioncollections=(Collection)Class.forName(className);
ReflectPoint pt1=newreflectPoint(3,3);
ReflectPoint pt2=newreflectPoint(5,5);
ReflectPoint pt3=newreflectPoint(3,3);
collections.add(pt1);
collections.add(pt2);
collections.add(pt3);
collections.add(pt1);
System.out.println(colletions.size());
}
}
Config.properties:
className=java.util.ArrayList