下面列出了org.apache.commons.lang.reflect.MethodUtils#getMatchingAccessibleMethod ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
@Override
public Object call(Context context, List args) throws FunctionCallException {
try {
String clazzName = (String) (args.get(0));
String methodName = (String) (args.get(1));
LOGGER.debug("XEditor extension function calling {} {}", clazzName, methodName);
Class[] argTypes = new Class[args.size() - 2];
Object[] params = new Object[args.size() - 2];
for (int i = 0; i < argTypes.length; i++) {
argTypes[i] = args.get(i + 2).getClass();
params[i] = args.get(i + 2);
}
Class clazz = ClassUtils.getClass(clazzName);
Method method = MethodUtils.getMatchingAccessibleMethod(clazz, methodName, argTypes);
return method.invoke(null, params);
} catch (Exception ex) {
LOGGER.warn("Exception in call to external java method", ex);
return ex.getMessage();
}
}
private Method findMethod(Class<?> argType) {
try {
Class<?> clazz = ClassUtils.getClass(className);
Class<?>[] argTypes = { argType };
return MethodUtils.getMatchingAccessibleMethod(clazz, methodName, argTypes);
} catch (ClassNotFoundException ex) {
throw new MCRConfigurationException("class configured for external validation not found: " + className);
}
}