根據引數呼叫本類不同的方法(JAVA反射)從而減少if的判斷
阿新 • • 發佈:2021-01-12
根據引數呼叫本類不同的方法,大概有十幾個方法,如果用if判斷程式碼會比較長。
java程式碼:
public class Test{ public static void main(String[] args) { Map<String, String> params = new HashMap<>(); params.put("name", "小綿羊"); String name="test1";//方法名 賦值不同調用不同方法 try { Class<Test> test= Test.class; Method methods=test.getMethod(name, Map.class);//Map是引數型別 methods.invoke(new Test,params);//呼叫方法 返回object 可以進行強轉 }catch (NoSuchMethodException | IllegalAccessException | InvocationTargetException e){ e.printStackTrace(); } } public Map<String, Object> test1( Map<String, Object> map) { System.out.println("我是test1"+map.get("name")); return map; } public Map<String, Object> test2( Map<String, Object> map) { System.out.println("我是test2"+map.get("name")); return map; } public Map<String, Object> test3( Map<String, Object> map) { System.out.println("我是test3"+map.get("name")); return map; } .... }
執行結果: