ClassCastException Ao transmitir a lista <> para a classe <?>

Eu tenho um método que tem uma lista de entradas e cada valor de entrada eu tenho que convertê-lo no tipo necessário. (Na verdade, esta lista possui valores de parâmetros na forma "alguns" que devo converter no tipo requerido, o tipo requerido é o tipo que o método requer, isto é para invocação de APIs através da reflexão)

Eu escrevi um 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)));
 }

A mensagem de exceção é assim:

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

Agora, se eu mudar a primeira linha para

Type[] argTypes = method.getParameterTypes()

Então passa alguma idéia do por que pode estar acontecendo assim?

questionAnswers(3)

yourAnswerToTheQuestion