class="java" name="code">
package com.suneee.common;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.HashMap;
import java.util.Map;
public class ReflectInstance {
	/**
	 * 
	 * @param classPath  classpath
	 * @param methodName  methodName
	 * @param args   its type can be (String,Integer,Boolean,Map,List)
	 */
	@SuppressWarnings("unchecked")
	public static Map<String,String> sendMsg(String classPath,String methodName,Map<String,String> args1,Map<String,Object> args2) {
		try {
			Class<?> simpleClass = Class.forName(classPath);
			Method simpleMethod = null;
			Object simpelObject = simpleClass.newInstance();
			
				simpleMethod = simpleClass.getDeclaredMethod(methodName, Map.class,Map.class);
			
			simpleMethod.setAccessible(true);
			Map<String,String> result = (Map<String, String>) simpleMethod.invoke(simpelObject, args1,args2);
			return result;
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		} catch (NoSuchMethodException e) {
			e.printStackTrace();
		} catch (SecurityException e) {
			e.printStackTrace();
		} catch (InstantiationException e) {
			e.printStackTrace();
		} catch (IllegalAccessException e) {
			e.printStackTrace();
		} catch (IllegalArgumentException e) {
			e.printStackTrace();
		} catch (InvocationTargetException e) {
			e.printStackTrace();
		}
		return null;
	}
	
	public static void main(String[] args)  {
		Map map1 = new HashMap();
		map1.put("aa", "kill me!");
		Map map2 = new HashMap();
		map2.put("bb", " don't kill me !");
		sendMsg("com.test.common.ReflectInstance","sendMsg",map1,map2);
	}
	
	public Map<String,String> sendMsg(Map<String,String> args,Map<String,Object> args2){
		System.out.println("order-----------"+args);
		Map<String,String> map = new HashMap<String,String>();
		map.put("test", args.get("aa"));
		return map;
	}
}