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
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;
}
.
.
.
}
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.