转自:http://www.cnblogs.com/onlywujun/p/3519037.html
定义类
public class A{
public void foo(String name) {
System.out.println("Hello, " + name);
}
public void dealMap(Map<String,Object> param){
System.out.println(param.get("name")+":"+param.get("age"));
}
public void dealParams(String name,Integer age){
System.out.println(name+":"+age);
}
public String sayHello(String name){
return "Hello,"+name;
}
}
调用类:
public class TestClassLoad {
public static void main(String[] args) throws Exception {Class<?> clz = Class.forName("com.test.A"); //一定要加上包名
Object o = clz.newInstance();
Method m = clz.getMethod("foo", String.class); //一个参数
m.invoke(o, Integer.toString(2));
Method m2 = clz.getMethod("dealMap", Map.class);
Map<String,Object> param = new HashMap<String, Object>();
param.put("name", "taking");
param.put("age", "26");
m2.invoke(o, param);
Method m3 = clz.getMethod("dealParams", String.class,Integer.class);
m3.invoke(o, "jone",28);
Method m4 = clz.getMethod("sayHello", String.class);
System.out.println(m4.invoke(o, "james"));
}
}
spring 里面的调用:
Object intentionCustomerService = ApplicationContextAware.getApplicationContext().getBean("intentionCustomerService");
Method method = intentionCustomerService.getClass().getMethod("taskSyncCustomerOrg");
method.invoke(intentionCustomerService);