关于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中的反射机制的总结的主要内容,如果未能解决你的问题,请参考以下文章

JAVA反射机制—学习总结

反射机制入门

反射机制入门

反射机制入门

Java学习总结(十四)——java反射机制,利用反射动态创建对象

Class对象与反射机制的学习