1. 程式人生 > 其它 >根據引數呼叫本類不同的方法(JAVA反射)從而減少if的判斷

根據引數呼叫本類不同的方法(JAVA反射)從而減少if的判斷

技術標籤:Javajava反射

根據引數呼叫本類不同的方法,大概有十幾個方法,如果用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;
    }
        ....
}

執行結果: