我有下面的類結構的泛型類字段類型:獲得與Java思考
public class GenClass<T> {
public T elem;
}
我使用的方式如下:
public class Test {
public GenClass<UUID> data;
現在我想ELEM類型使用數據的字段對象(Test.class.getField("data")
) 但是,當我使用getType
檢索類時,通用信息被剝離。
如何將通用信息從getGenericType
映射到類對象以檢索具有正確類型的字段?
編輯︰由於有一些誤解,我試圖澄清我的問題。 考慮這個例子:
public class AClass<T, Q> {
public Q elem;
// some other code using T...
}
public class BClass<T, Q> {
public T elem;
// some other code using Q...
}
現在我想一個函數來獲取類ELEM的:
public class Test {
public AClass<UUID, String> a;
public BClass<Integer, Float> b;
void do() throws Exception {
Field aField = Test.class.getField("a");
Field bField = Test.class.getField("b");
getType(aField, "elem"); // should return String.class
getType(bField, "elem"); // should return Integer.class
}
Class<?> getType(Field f, String classField) {
// ???
}
}
我怎麼需要實現getType
得到我想要的結果?
檢查http://stackoverflow.com/questions/1901164/get-type-of-a-generic-parameter-in-java-with-reflection – user2953113
但我不知道,該字段的實際類型參數中的哪一個用於elem。也許我有一個像AClass這樣的課程,然後聲明'B數據'。我怎麼知道,數據是第三種類型的論點? –
darkbit