public static void main(String[] args) throws ClassNotFoundException, NoSuchMethodException, InstantiationException, IllegalAccessException, IllegalArgumentException, InvocationTargetException { // Object invoke(Object obj, Object... args) // 参数1:用obj对象调用该方法 // 参数2:调用的方法传递的参数(如果没有就不写) // 返回值:方法的返回值,没有就不写 // 获取Class对象 Class clazz = Class.forName("reflect.Student"); // 获取单个公共的成员方法getMethod(String name, Class<?>... parameterTypes) // 参数1是方法名,参数2是方法的参数,方法没有参数可以不写 Method method = clazz.getMethod("show2", String.class); // 获取调用方法的对象 Student stu = (Student)clazz.newInstance(); // 调用方法 Object invoke = method.invoke(stu, "zhangsan"); System.out.println(invoke); }
public class Student { public String name; public int age; private int money = 100; public void show() { System.out.println("公共方法"); } public void show1(String name) { System.out.println("公共有参方法"); } public String show2(String name) { System.out.println("公共有参方法"); return "返回的参数:" + name; } private void test() { System.out.println("私有方法:"); } @Override public String toString() { return "Student [name=" + name + ", age=" + age + ", money=" + money + "]"; } }