ClassCastException Mientras se lanza la Lista <String> a la Clase <?>

Tengo un método que tiene una lista de entradas y cada valor de entrada tengo que convertirlo al tipo requerido. (En realidad, esta lista tiene valores de parámetros en "alguna" forma que se supone que debo convertir en el tipo requerido, el tipo requerido es el tipo que requiere el método, esto es para la invocación de API a través de la reflexión)

He escrito un código como este:

Type[] argTypes = method.getGenericParameterTypes();
List<Object> acutalValues = // List of actual values from method input.
// Resultant list of arguments which will holds casted values.
List<Object> arguments = new ArrayList<Object>(argTypes.length);

for (int i = 0; i < argTypes.length; i++) {
 Class<?> requiredClassTYpe = (Class<?>) argTypes[i]; // argTypes[1] =java.util.List<java.lang.String> fails..
 // cast the actual value to the required type. Required type is requiredClassType
 arguments.add(castToRequiredType(requiredClassTYpe, actualValues.get(i)));
 }

El mensaje de excepción es así:

ClassCastException: Cannot cast sun.reflect.generics.reflectiveObjects.ParameterizedTypeImpl (id=77) to java.lang.Class

Ahora si cambio la primera línea a

Type[] argTypes = method.getParameterTypes()

Entonces pasa alguna idea de por qué podría estar sucediendo as