protected ArgumentHolder(MethodParameter parameter, Object object) {
Type genericType = parameter.getGenericParameterType();
if (genericType instanceof Class<?>) {
this.type = (Class<?>) genericType;
} else {
ParameterizedTypeImpl parameterizedType = (ParameterizedTypeImpl) genericType;
this.type = parameterizedType.getRawType();
Type[] actualTypeArguments = parameterizedType.getActualTypeArguments();
this.actualArguments = new Class<?>[actualTypeArguments.length];
for (int i = 0; i < actualTypeArguments.length; i++) {
if (actualTypeArguments[i] instanceof Class<?>) {
this.actualArguments[i] = (Class<?>) actualTypeArguments[i];
} else {