通过类实例化对象的getMethods() 方法可以获得该类所包括的全部方法, 返回值是Method[]。
通过类实例化对象的getMethod()方法可以获得该类所包括的指定方法, 返回值是Method,每个Method对象对应一个方法,获得Method对象后,可以调用其invoke()接口来调用对应方法。invoke(Object obj,Object [] args):obj代表当前方法所属的对象的名称,args代表当前方法的参数列表,返回值是当前方法的返回值。
import java.lang.reflect.Method;
public class Ts {
public void myMethod() {
System.out.println("调用了无参方法");
}
public void myMethod(String str, int num) {
System.out.println("调用了带参数方法,参数为:" + str + ", " + num);
}
public static void main(String[] args) throws Exception {
// 获取Class对象
Class clazz = Ts.class;
String a = "myMethod";
// 获取无参方法
Method method1 = clazz.getMethod(a);
method1.invoke(new Ts());
// 获取带参数的方法
Method method2 = clazz.getMethod("myMethod", String.class, int.class);
method2.invoke(new Ts(), "hello", 123);
}
}