使用反射调用方法
import java.lang.reflect.Method;class Panda {public String name;public int age;// 公共无参数方法public void eat() {System.out.println("I can eat zhuzi");}// 静态方法public static void run() {System.out.println("I can run slowly");}// 私有有参数方法private void show(String name, int age) {System.out.println("name : " + name + " age :" + age);}}public class MethodDemo {public static void main(String[] args) throws Exception {// 获得Panda类的对象Class<Panda> clz = Panda.class;Method m = null;// 获取eat方法m = clz.getMethod("eat");// 用invoke调用eat方法Object o = m.invoke(clz.newInstance());System.out.println(o);// 获取run方法m = clz.getMethod("run");// 静态方法可用类直接调用,Obj可为空Object oo = m.invoke(null);System.out.println(oo);// 获取类自己的私有方法m = clz.getDeclaredMethod("show", String.class, int.class);// 忽略权限m.setAccessible(true);// 用invoke调用私有方法,并根据参数列表设置对应的值Object ooo = m.invoke(clz.newInstance(), "Nancy", 10);System.out.println(ooo);}}?