java 反射调用类的方法
最近遇到一个问题,重复的写一些方法,这些方法基本除了调用对象的方法不同外其他的都相同,发现这个相同点后,就在考虑怎么写一个方法,只需要传入对象方法的名字就可以对方法进行调用。
这里会用到java反射:
首先建立一个使用反射调用的类Computer:
String [] strs = new String[]{"watchTV","surfInternet","workOffice"};for(int i=0;i<strs.length;i++)invokeMethod(Computer.class.getMethod(strs[i], null), Computer.class.newInstance(), null);?Computer中含有3个类似的方法,而且参数基本相同,所以我就使用一个数组的方式来对这个对象进行调用,而不是直接通过对象调用方法。
?
这样做就可以在进行相似处理时传入对象的方法来进行调用。
?
但是使用反射后运行效率会下降,但是代码的重用性却提高了不少。