Problemas para recuperar o tipo generico de uma classe

3 respostas
P

Bom dia,

Estou tendo alguns problema para recuperar o tipo generico de uma classe. Estou tentando recuperar está informação da seguinte forma:

Class clazz = (Class) ((ParameterizedType) getClass().getGenericSuperclass()).getActualTypeArguments()[0];

No entanto, estou recebendo o seguinte erro:

sun.reflect.generics.reflectiveObjects.TypeVariableImpl cannot be cast to java.lang.Class

Já procurei outra forma em diversos lugares mas não encontrei nenhuma solução.
Alguém poderia me ajudar com essa questão.

Obrigado

3 Respostas

J

Eu fiz desta forma,

public abstract class GenericDAO<T, ID extends Serializable> implements IGenericDAO<T, ID> {

private Class<T> persistentClass;

public GenericDAO(EntityManager em) {
		this.persistentClass = (Class<T>) ((ParameterizedType) getClass().getGenericSuperclass()).getActualTypeArguments()[0];
        this.entityManager = em;
}

.
.
.

}
P

Boa tarde Jhonis23,

Foi exatamente desta forma que eu fiz. Inclusive, eu havia postado isso como exemplo.
O chato é que não funciona de modo algum.
Não sei se houve alguma mudança pois estou utilizando o JDK 6.

E

http://www.artima.com/weblogs/viewpost.jsp?thread=208860

Criado 5 de julho de 2011
Ultima resposta 5 de jul. de 2011
Respostas 3
Participantes 3