Отражение для класса универсального параметра в Java?
Представьте себе следующий сценарий:
class MyClass extends OtherClass<String>{
String myName;
//Whatever
}
class OtherClass<T> {
T myfield;
}
И я анализирую MyClass, используя отражение специально(MyClass.class).getDeclaredFields()
в этом случае я получу следующие поля (и типы, используя getType () поля):
myName --> String
myField --> T
Я хочу получить фактический тип для T, который известен во время выполнения из-за явного & quot; String & quot; в расширенных обозначениях, как я могу получить негенетический тип myField?
РЕДАКТИРОВАТЬ РЕШЕНО:
Похоже, что ответ "вы не можете". Для тех, кто может взглянуть на этот вопрос позже, я рекомендую использовать Джексона (я пытался сделать это для генерации JSON) и аннотировать ваши классы и поля таким образом, чтобы Джексон знал иерархию наследования и мог автоматически делать то, что предложенный правильный ответ ниже.