通過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é)果如下:
憨憨的小豬
嘎嘎嘎的小雞
漂亮的小貓
可愛的小狗
