根据参数调用本类不同的方法(JAVA反射)从而减少if的判断

根据参数调用本类不同的方法,大概有十几个方法,如果用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;
    }
        ....
}

运行结果:

猜你喜欢

转载自blog.csdn.net/qq_36802726/article/details/112492934