反射 -- 业务需求:执行某个类中全部的以test为开头的无参数无返回值的非静态方法。
package demo; //业务需求:执行某个类中全部的以test为开头的无参数无返回值的非静态方法。 import java.lang.reflect.Method; import java.util.Scanner; /** * 执行一个类中全部以test开头的方法 * @author Administrator * */ public class Demo2 { public static void main(String[] args) throws Exception{ //动态加载类 Scanner scan = new Scanner(System.in); System.out.println("请输入类名:"); String classname = scan.nextLine(); //动态获取全部方法信息 Class cl = Class.forName(classname); Method[] methods = cl.getDeclaredMethods(); //迭代全部方法查找以test为开头的方法 Object obj = cl.newInstance(); for(Method m:methods){ if(m.getName().startsWith("he")){ //System.out.println(m); //动态执行方法。 m.invoke(obj); System.out.println(m); } } } }