/**
* 方法的参数加载对象 可优化:Parameter包含类型和名称
*
* @param parameterTypes
* @param parameters
* @return
*/
private Object[] loadParameterWithMethod(Class[] parameterTypes, Parameter[] parameters) {
Object[] paramObjs = new Object[parameterCount];
// 厉害了,我的哥。
// 今天找了一整天,JDK/ASM都不行,Paranamer稳!
Paranamer paranamer = new BytecodeReadingParanamer();
String[] parametersName = paranamer.lookupParameterNames(invokeMethod);
int i = Constants.NUMBER.ZERO;
for (Class<?> type : parameterTypes) {
if (RequestContext.getInstance().isInContextObjs(type)) {
paramObjs[i] = RequestContext.getInstance().searchObjByType(type);
} else {
TypeParser parser = TypeParser.newBuilder().build();
Object searchedObject = RequestContext.getInstance().searchObjByName(parametersName[i]);
paramObjs[i] = parser.parseType(searchedObject.toString(), type);
}
i++;
}
// 通过类型加载
// searchAndBindByType(paramObjs, parameterTypes);
// TODO 通过参数名加载
return paramObjs;
}
CommonInvoke.java 文件源码
java
阅读 34
收藏 0
点赞 0
评论 0
项目:X4J
作者:
评论列表
文章目录