黑马程序员——基础加强——反射的作用,实现框架功能

来源:互联网 发布:淘宝客推广数据分析 编辑:程序博客网 时间:2024/06/05 18:36

------<ahref="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------

 

黑马程序员——基础加强——反射的作用,实现框架功能

1、 框架与框架要解决的核心问题,

我做贩房子给用户住,由用户自己安装门窗和空调,我做的房子就是框架,用户需要使用我的框架,把门窗插入我提供的框架中,框架与工具有区别,工具类被用户做调用,而框架就是调用用户的类。

2、 框架要解决的核心问题:

在写框架(房子)的时候,你这个用户可能还在上学,还不回写程序呢,我写的框架怎么样能调动你写的类呢,因为在写程序是无法做到要被调用的类名,所以在程序中无法直接new某个类的实例对象了。而要用反射方法来做。

3、综合案例:

先直接用new语句创建arrayListHashSet的实例对象。演示用Eclipse自动生成reflectPoint类的equalshashcode方法,比较两个集合的运算结果差异;然后改为采用配置文件加反射的方式创建ArrayListHashSet的实例对象,比较运行结果差异。引入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

 

 

0 0
原创粉丝点击