获取成员方法
思路
- 获取class对象
- 获得Method对象
- 运行方法
获得Method对象
- Method[] getMethods(): 返回公共成员方法对象的数组,包括继承的
- Method[] getDeclaredMethods(): 返回所有成员方法对象的数组,不包括继承的
Method getMethod(String name, Class<?>... parameterTypes)
: 返回单个公共成员方法对象
Method getDeclaredMethod(String name, Class<?>...parameterTypes)
: 返回单个成员方法对象
运行
- Object invoke(Object obj, Object...args)
- 参数一:用obj对象调用该方法
- 参数二:调用方法的传递的参数(如果没有就不写)
- 返回值:方法的返回值(如果没有就不写)
// 1. 获取Class对象
Class clazz = Class.forName("com.charley.myreflect5.Student");
// 2. 获取Method对象
Method method = clazz.getMethod("function4", String.class);
// 3. 运行funtion4方法就可以了
// 3.1 创建一个Student对象,当做方法的调用者
Student student = (Student) clazz.newInstance();
// 3.2 运行方法
Object result = method.invoke(student, "zhangsan");
System.out.println(result);
}