通過JAVA 中反射機(jī)制及Method的invoke實(shí)現(xiàn)動態(tài)類方法的動態(tài)調(diào)用
import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; public class MethodInvokeTest { public static void main(String[] args) throws NoSuchMethodException, IllegalAccessException, InstantiationException, InvocationTargetException { String [] methods ={"pig","chicken","cat","dog"}; Class animal = Animal.class; //得到Animal類對象, 注意類本身也是一個對象 for(String m:methods){ Method method = animal.getMethod(m);//獲得animal對象所聲明的公開方法 m 給method method.invoke(animal.newInstance()); //執(zhí)行animal對象的method方法 } } } class Animal{ public void dog(){ System.out.println("可愛的小狗"); } public void cat(){ System.out.println("漂亮的小貓"); } public void pig(){ System.out.println("憨憨的小豬"); } public void chicken(){ System.out.println("嘎嘎嘎的小雞"); } }
執(zhí)行結(jié)果如下:
憨憨的小豬
嘎嘎嘎的小雞
漂亮的小貓
可愛的小狗