final MetaParameter[] parameters = method.getParameters();
final MetaType[] genericParmTypes = method.getGenericParameterTypes();
if (genericParmTypes != null && genericParmTypes.length == parameters.length) {
for (int i = 0, genericParmTypesLength = genericParmTypes.length; i < genericParmTypesLength; i++) {
MetaType type = genericParmTypes[i];
MetaClass parmType = parameters[i].getType();
if (type instanceof MetaTypeVariable) {
final MetaTypeVariable typeVariable = (MetaTypeVariable) type;
if (typeVariableMap.containsKey(typeVariable.getName())) {
final MetaType typeVar = typeVariableMap.get(typeVariable.getName());
if (typeVar instanceof MetaClass) {
parmType = (MetaClass) typeVar;
}
}
}