有關Java中的類型擦除處理的大多數文檔假定用例處理的類型如SomeType<ParamType>
。 我試圖處理方法參數如下方法:Java:在嵌套參數化類型中獲取內部類型(反射)
public void setOtherReferenceRanges(List<ReferenceRange<T>> referenceRanges)
當容器類與一類DvQuantity實例化,這個簽名應該成爲在運行時 public void setOtherReferenceRanges(List<ReferenceRange<DvQuanitity>> referenceRanges)
。
使用反射可以看到List
有一個actualTypeArgument
這是ReferenceRange<T>
。由於反射使用類信息,我不希望它給我ReferenceRange<DvQuantity>
。 但是,當我創建包含此方法的類時,我通過了DvQuantity
類型T
。所以填充T
的類型應該可用於Java運行時,但我找不到獲取它的方法。我最終通過反射訪問了一個TypeVariableImpl
對象,該對象似乎沒有包含任何有用的數據。
你能想出任何方法來發現運行時的這些信息嗎?
感謝您的回覆。它驗證了迄今爲止我所看到的。不幸的是,我沒有權力在我需要做這項工作的設置上。還要感謝其他答覆,如果我能夠控制這種情況,所有這些答案都會有用。 – mahonya 2010-02-16 14:36:58