Reflection in ArrayList as Param

Boa tarde!

Venho pedir ajuda novamente para resolver este problema:

Preciso testar se o tipo genérico de uma determinado lista corresponde a uma determinada classe que possui uma anotação chamada @Entity.
Sei que amanhã, possívelmente, este problema seja resolvido mais facilmente, pq agora a mente está muito saturada, mas por via das dúvidas resolvi pedir socorro a vocês para ver se consigo sair deste prego o quanto antes. Bom… seque a implementação do que desejo:

public class CollectionTypeSpecification implements PropertySpecification {

	@Override
	public boolean isSatisfiedBy(Object object) {
		boolean ret = false;
		if (object instanceof Iterable<?>){
			Type t = object.getClass().getGenericSuperclass();
			if (t != null){
				ParameterizedType p = (ParameterizedType) t;
				Class<?> itemsClass = (Class<?>) p.getActualTypeArguments()[0];
				ret = (itemsClass.getAnnotation(Entity.class) != null);
			}
		}
		return ret;
	}
	
        // apenas para teste
	public static void main(String[] args) throws SecurityException, NoSuchFieldException {
		CollectionTypeSpecification c = new CollectionTypeSpecification();
		List<Details> details = new ArrayList<Details>();
		System.out.println(c.isSatisfiedBy(details));
	}

}[/code]

Considerando que Details possui a devida anotação o resultado deveria ser "[b]true[/b]", porém o resultado é:

[code]Exception in thread "main" java.lang.ClassCastException: sun.reflect.generics.reflectiveObjects.TypeVariableImpl cannot be cast to java.lang.Class
	at br.com.mysoft.dshelper.specifications.CollectionTypeSpecification.isSatisfiedBy(CollectionTypeSpecification.java:22)
	at br.com.mysoft.dshelper.specifications.CollectionTypeSpecification.main(CollectionTypeSpecification.java:32)[/code]

Sei que se eu alterar a parte do código do [b]main[/b] pelo código abaixo funcionará, mas não é esta a solução que desejo.

[code] ...
 CollectionTypeSpecification c = new CollectionTypeSpecification();
 List<Details> details = new ArrayList<Details>(){
 };
 System.out.println(c.isSatisfiedBy(details));
 ...

Alguma sugestão?