所以我有一些像Java中的以下內容:檢索集合類型
private List<SomeType>variable;
// ....variable is instantiated as so ...
variable = new ArrayList<SomeType>();
// there's also a getter
public List<SomeType> getVariable() { /* code */ }
我想做什麼就能做的是弄清楚,variable
是SomeType
集合編程。我讀here,我可以確定從方法getVariable()
,但有沒有什麼辦法可以直接告訴variable
?
我已經能夠根據鏈接中的信息從getter方法檢索SomeType
。我也成功地通過SurroundingClass.getClass().getDeclaredFields()
檢索了周圍班級的所有字段,但這並不告訴我它是List<SomeType>
。
編輯:基於bmargulies的迴應如下操作會達到我想要的:
Field[] fields = SurroundingClass.getDeclaredFields();
/* assuming it is in fields[0] and is a ParameterizedType */
ParameterizedType pt = (ParameterizedType) fields[0].getGenericType();
Type[] types = pt.getActualTypeArguments();
/* from types I'm able to see the information I've been looking for */
啊,getDeclaredFields()原來是它鑄造ParameterizedType後完美地工作在尋找的元素之一得到SOMETYPE。 – nevets1219