Reflexão para Classe de Parâmetro Genérico em Java?
Imagine o seguinte cenário:
class MyClass extends OtherClass<String>{
String myName;
//Whatever
}
class OtherClass<T> {
T myfield;
}
E eu estou analisando MyClass usando reflexão especificamente(MyClass.class).getDeclaredFields()
, neste caso, eu vou obter os seguintes campos (e tipos, usando getType () do campo):
myName --> String
myField --> T
Eu quero obter o tipo real para T, que é conhecido em tempo de execução devido à "String" explícita na notação de extensão, como faço para obter o tipo não genético de myField?
EDITAR RESOLVIDOS:
Parece que a resposta é "você não pode". Para aqueles que podem olhar para esta questão mais tarde eu recomendo usar Jackson (eu estava tentando fazer isso para gerar JSON) e anotando suas classes e campos de tal forma que Jackson esteja ciente da hierarquia de herança e possa fazer automaticamente o que a resposta correta abaixo sugerida.