想象以下場景:對Java中泛型參數類的反思?
class MyClass extends OtherClass<String>{
String myName;
//Whatever
}
class OtherClass<T> {
T myfield;
}
,我使用反射專門(MyClass.class).getDeclaredFields()
分析MyClass的,在這種情況下,我會得到(領域和類型,使用的getType())以下字段:
myName --> String
myField --> T
我想獲得T的實際類型,由於擴展表示法中顯式的「字符串」,這在運行時已知,我該如何獲取非遺傳類型的myField?
編輯解決:
好像答案是「你不能」。對於那些稍後可能會看到這個問題的人,我建議使用Jackson(我試圖這樣做來生成JSON)並以這種方式註釋您的類和字段,以便Jackson知道繼承層次結構並可以自動執行建議下面的正確答案。
答案不是你不能;您可以輕鬆地創建從類型參數到顯式類型參數的映射。 – Jeffrey