java.lang.ClassCastException: java.lang.Class cannot be cast to java.lang.reflect.ParameterizedType
Utilizo o java 6. Por que esse problema com o cast? Existe alguma outra forma para descobrir qual a classe T, ou preciso passá-la como parâmetro adicional no construtor?
a) Você tem um problema de parênteses
O que você fez:
((ParameterizedType) getClass()
.getGenericSuperclass())
O que deveria ser:
((ParameterizedType) (getClass()
.getGenericSuperclass()))
b) Poste a definição completa da sua classe. Ela é class Dao<T> ou outra coisa?
G
genildof
Olá Thingol,
Fiz a alteração nos parênteses, ocorre o mesmo erro (linha 21).
Classe Dao<T>:
Valeu!!! Essa dica foi muito importante.
Obrigado
[]s
R
renatosilva
Não há como “descobrir a classe T” pois o compilador não leva essa informação para o bytecode. O Generics é um recurso de compilação e não de runtime. Veja este tópico: http://www.guj.com.br/posts/list/122984.java