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