脚本宝典收集整理的这篇文章主要介绍了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,请注明来意。