关于JAVA中的反射机制的总结
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于JAVA中的反射机制的总结相关的知识,希望对你有一定的参考价值。
JAVA中的反射机制是一种能够大大增强程序扩展性的技术。当一个程序封装完成后(生成exe文件),如果想要对该程序进行功能扩展,不用进行代码的从新修改(也不可能拿到源码),只要修改配置文件(一般是XML)就可以完成。
这样的程序为外部提供了一个接口,只要按照该接口的规则定义一个对象(功能),即可以为应用程序扩展该功能。
可以这样比喻,你买了一块电脑主板(封装好的程序),此时你想要添加一块声卡(要扩展的功能),此时只能够通过一个pci接口(应用程序提供的接口)来进行扩展。声卡的接口必须符合PCI的规则才可以被主板使用。通过添加驱动程序(修改XML配置文件)来进行扩展功能。
具体到代码实现分为以下几步:
1、定义一个接口(PCI)及一系列的方法用作加载功能。
2、定义一个对象并且实现该接口,复写其中的方法。
3、在配置文件中添加该对象的名称键值对。
4、定义一个输入流,读入配置文件进properties集(健壮性判断);
5、使用for循环挨个获取properties集中的对象名称;
6、获取名称后用Class加载这个类,并实例化一个该对象(可以直接进行类型强转,因为已知是PCI接口)。
7、使用对象。
1 File configFile = new File("pci.properties"); 2 3 Properties prop = new Properties(); 4 FileInputStream fis = new FileInputStream(configFile); 5 6 prop.load(fis); 7 8 for(int x=0; x<prop.size(); x++){ 9 10 String pciName = prop.getProperty("pci"+(x+1)); 11 12 Class clazz = Class.forName(pciName);//用Class去加载这个pci子类。 13 14 PCI p = (PCI)clazz.newInstance(); //PCI接口已经定义好了,有open和close两个方法 15 16 mb.usePCI(p);//mb是主板对象,定义了一个使用PCI接口对方法 17 } 18 19 fis.close();
以上是关于关于JAVA中的反射机制的总结的主要内容,如果未能解决你的问题,请参考以下文章