Odbicie dla klasy parametru ogólnego w Javie?
Wyobraź sobie następujący scenariusz:
class MyClass extends OtherClass<String>{
String myName;
//Whatever
}
class OtherClass<T> {
T myfield;
}
I analizuję MyClass za pomocą refleksji(MyClass.class).getDeclaredFields()
, w tym przypadku otrzymam następujące pola (i typy, używając getType () pola):
myName --> String
myField --> T
Chcę uzyskać rzeczywisty typ dla T, który jest znany w czasie wykonywania z powodu wyraźnego „ciągu” w notacji rozszerzającej, w jaki sposób uzyskać uzyskanie niegenetycznego typu myField?
EDYTUJ ROZWIĄZANE:
Wydaje się, że odpowiedź brzmi „nie możesz”. Dla tych, którzy mogą spojrzeć na to pytanie później, zalecam skorzystanie z Jacksona (próbowałem to zrobić, aby wygenerować JSON) i opisać swoje klasy i pola w taki sposób, aby Jackson wiedział o hierarchii dziedziczenia i mógł automatycznie robić to, co zasugerowano poprawną odpowiedź poniżej.