Java进阶之反射的简单应用:通过反射运行配置文件内容

发布时间:2019-11-17 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了Java进阶之反射的简单应用:通过反射运行配置文件内容脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

现在有三个类:Student、Teacher、Doctor和一个测试类:test,先上代码:

public class Student {     public void love()     {         System.out.PRintln("爱编程,爱Java");     } } 
public class Teacher {     public void love() {         System.out.println("只爱学生");     } } 
public class Doctor {     public void love() {         System.out.println("专治各种不服");     } } 
public class Test{     public static void main(String[] args)     {         Student s=new Student();         s.love();                  //Teacher t=new Teacher();         //t.love();                  //Doctor d=new Doctor();         //d.love();              } } 

如果按照以上的方法,每一次需求变更,这一次是Student类,下一次是Teacher类,再下一次是Doctor类,那岂不是每一次都要改源程序?(其实在实际开发中经常遇到需求变更)那可不可以不改程序就能应对大量的需求变更呢?答案是可以的,通过Java给我们提供的反射机制,不改源程序,只对配置文件做修改即可。下面附上代码和配置文件内容:

public class Test {      public static void main(String[] args) throws Exception {                  //ProPErties类用于读取配置文件的键值         Properties p=new Properties();         FileReader fr=new FileReader("class.txt");         p.load(fr);         //通过键获得值         String classname=p.getProperty("className");         String methodName=p.getProperty("methodName");         //创建字节码文件对象,获得无参构造方法对象         Class clazz=Class.forName(className);         Constructor con=clazz.getConstructor();         //通过构造方法获得实例对象         Object obj=con.newInstance();         //获得成员方法对象         Method met=clazz.getDeclaredMethod(methodName);         //调用方法         met.invoke(obj);              }  } 
className=com.ls.reflect.Doctor//注意,这里是  包名.类名 methodName=love     注释已经很详细了,以后只需改配置文件就行了。     其实这只是一个简单的小例子,目的是让大家知道这种思想,这种思想是很重要的,    而Spring框架就是基于反射机制,通过修改配置文件来实现需求。     所以学好反射能更加清楚地了解Spring框架。

脚本宝典总结

以上是脚本宝典为你收集整理的Java进阶之反射的简单应用:通过反射运行配置文件内容全部内容,希望文章能够帮你解决Java进阶之反射的简单应用:通过反射运行配置文件内容所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。