package com.test; import java.lang.reflect.Method; class Tools { public void print() { System.out.print("无返回值的构造方法"); } public String getInfo() { return "Hello World"; } public int add(int x, int y) { return x + y; } } public class Invoke { public static void main(String args[]) { try { // 1 无返回值的调用 // Class<?> cls = Class.forName("com.test.Tools"); // Object obj = cls.newInstance(); // Method mtd = cls.getMethod("print"); // mtd.invoke(obj); // 2 有返回值的无参调用 // Class<?> cls = Class.forName("com.test.Tools"); // Object obj = cls.newInstance(); // Method mtd = cls.getMethod("getInfo"); // Object ret = mtd.invoke(obj); // System.out.print(ret); // 3 调用有参有返回值的 Class<?> cls = Class.forName("com.test.Tools"); Object obj = cls.newInstance(); Method mtd = cls.getMethod("add", int.class, int.class); Object ret = mtd.invoke(obj, 10, 20); System.out.print(ret); } catch (Exception e) { e.printStackTrace(); } } }
test