根据特定字符串加载相应的方法,有人用if else,有人用switch。参数少了或情况少了还好,很多方法真要命,不要紧,java反射拯救你
import java.lang.reflect.Method; public class Test { public static void main(String[] args) throws Exception { Test t=new Test(); Class<? extends Test> c = t.getClass();//Returns the runtime class of this Object.即返回类 Object obj = c.newInstance();//Returns the runtime class of this Object即返回类对象 for (int i = 1; i <= 5; i++) { //Returns a Method object that reflects the specified declared method of the class or interface represented by this Class object。 //即返回根据上述特定类或接口中的指定方法 Method m = c.getDeclaredMethod("method"+i); m.invoke(obj); } } @SuppressWarnings("unused") private static void method1() { System.out.println("方法1"); } @SuppressWarnings("unused") private static void method2() { System.out.println("方法2"); } @SuppressWarnings("unused") private static void method3() { System.out.println("方法3"); } @SuppressWarnings("unused") private static void method4() { System.out.println("方法4"); } @SuppressWarnings("unused") private static void method5() { System.out.println("方法5"); } }
结果如下:
方法1
方法2
方法3
方法4
方法5