ParamType paramType = new ParamType(rawType, args, newParamMap);
return paramType;
}
else if (type instanceof GenericArrayType) {
GenericArrayType aType = (GenericArrayType) type;
BaseType baseType = create(aType.getGenericComponentType(),
paramMap, paramDeclName,
classFill);
Class<?> rawType = Array.newInstance(baseType.getRawClass(), 0).getClass();
return new ArrayType(baseType, rawType);
}
else if (type instanceof TypeVariable<?>) {
TypeVariable<?> aType = (TypeVariable<?>) type;
return createVar(aType, paramMap, paramDeclName, parentType, classFill);
}
else if (type instanceof WildcardType) {
WildcardType aType = (WildcardType) type;
BaseType []lowerBounds = toBaseType(aType.getLowerBounds(),
paramMap, paramDeclName);
BaseType []upperBounds = toBaseType(aType.getUpperBounds(),
paramMap, paramDeclName);
return new WildcardTypeImpl(lowerBounds, upperBounds);
}