ParameterizedType parameterizedType = (ParameterizedType)targetType;
Template tmpl = lookupGenericImpl(parameterizedType);
if (tmpl != null) {
return tmpl;
}
return new DefaultTemplate(this, (Class<?>) parameterizedType.getRawType(), parameterizedType);
} else {
throw new IllegalArgumentException("Actual types of the generic type are erased: "+targetType);
}
}