81,094
社区成员
发帖
与我相关
我的任务
分享
/得到对象
Class c = Class.forName(className);
logger.tasklog("===========到这里了====1");
Object[] methodPramas;
Class[] parameterTypes =new Class[]{};
if(null==params || "".equals(params))//执行的方法没有参数
{
logger.tasklog("===========到这里了====2");
methodPramas = new Object[]{};
}
else
{
logger.tasklog("===========到这里了====3");
String[] paramStr = params.split("#");
logger.tasklog("===========参数paramStr="+paramStr);
parameterTypes = new Class[paramStr.length];
methodPramas = new Object[paramStr.length];
for(int i=0;i<paramStr.length;i++)
{
String[] str = paramStr[i].split("\\|");
String type = str[0];
String param = str[1];
logger.tasklog("===========参数param"+param);
logger.tasklog("===========参数type"+type);
if(type.equals("String"))
{
methodPramas[i]=param;
parameterTypes[i] = String.class;
logger.tasklog("@@@@@@@@@@methodPramas"+methodPramas);
logger.tasklog("@@@@@@@@@@parameterTypes"+parameterTypes);
}
else if(type.equals("Integer"))
{
methodPramas[i]=Integer.parseInt(param);
parameterTypes[i] = int.class;
}
else if(type.equals("Date"))
{
Date date = DateUtil.formatStringToDate(param, "yyyy-MM-dd HH:mm:ss");
methodPramas[i]=date;
parameterTypes[i] = Date.class;
}
else if(type.equals("Long"))
{
methodPramas[i]=Long.parseLong(param);
parameterTypes[i] = Long.class;
}
logger.tasklog("===========参数methodPramas"+methodPramas);
logger.tasklog("===========参数parameterTypes"+parameterTypes);
}
logger.tasklog("===========过这里了methodPramas"+methodPramas);
}
logger.tasklog("#################参数parameterTypes"+parameterTypes);
//获取到方法对象,假设方法的参数是一个int,method名为setAge
Method interfaceMethod = c.getMethod(methodName, parameterTypes);
//执行方法
logger.tasklog("#################方法sAge"+interfaceMethod);
logger.tasklog("#################开始反射调用方法)))))))");
// sAge.invoke(inter, methodPramas);
PafaApplicationContext context = (PafaApplicationContext) AppContext.getInstance().getApplicationContext();
BeanFactory factory = (BeanFactory) context;
// Object obj = factory.getBean("orderService");
Object obj = factory.getBean(interfaceName);
Method method = getObjetSameMehodByInterfaceMehtod(obj, interfaceMethod);
Object resultObj = method.invoke(obj, methodPramas);
不是的,不是为了获取bean,而是调用方法的时候需要这个bean [quote=引用 6 楼 gaofuqi 的回复:] [quote=引用 5 楼 hu_yongxing 的回复:] [quote=引用 4 楼 gaofuqi 的回复:] [quote=引用 3 楼 hu_yongxing 的回复:] [quote=引用 2 楼 gaofuqi 的回复:] 如果只是想获取spring bean的话,实现ApplicationContextAware接口,在spring配置即可。
不是的,不是为了获取bean,而是调用方法的时候需要这个bean [quote=引用 5 楼 hu_yongxing 的回复:] [quote=引用 4 楼 gaofuqi 的回复:] [quote=引用 3 楼 hu_yongxing 的回复:] [quote=引用 2 楼 gaofuqi 的回复:] 如果只是想获取spring bean的话,实现ApplicationContextAware接口,在spring配置即可。
不是的,不是为了获取bean,而是调用方法的时候需要这个bean [quote=引用 5 楼 hu_yongxing 的回复:] [quote=引用 4 楼 gaofuqi 的回复:] [quote=引用 3 楼 hu_yongxing 的回复:] [quote=引用 2 楼 gaofuqi 的回复:] 如果只是想获取spring bean的话,实现ApplicationContextAware接口,在spring配置即可。
不是的,不是为了获取bean,而是调用方法的时候需要这个bean [quote=引用 4 楼 gaofuqi 的回复:] [quote=引用 3 楼 hu_yongxing 的回复:] [quote=引用 2 楼 gaofuqi 的回复:] 如果只是想获取spring bean的话,实现ApplicationContextAware接口,在spring配置即可。
不是的,不是为了获取bean,而是调用方法的时候需要这个bean [quote=引用 3 楼 hu_yongxing 的回复:] [quote=引用 2 楼 gaofuqi 的回复:] 如果只是想获取spring bean的话,实现ApplicationContextAware接口,在spring配置即可。
不是的,不是为了获取bean,而是调用方法的时候需要这个bean [quote=引用 2 楼 gaofuqi 的回复:] 如果只是想获取spring bean的话,实现ApplicationContextAware接口,在spring配置即可。
不是的,不是为了获取bean,而是调用方法的时候需要这个bean 如果只是想获取spring bean的话,实现ApplicationContextAware接口,在spring配置即可。
如果只是想获取spring bean的话,实现ApplicationContextAware接口,在spring配置即可。