0
有可能重複:
Get generic type of class at runtime
How to get the generic type at runtime?的Java:我如何在運行時得到泛型類型的類型
嗨,
我如何獲得在運行時鍵入java中的泛型類型?
在C#中,我可以使用typeof
運算符。通過typeof
運算符,我可以在運行時獲得有關此泛型類型的更多信息的類型對象。
在Java中是否有等價的運算符?
在此先感謝。
親切的問候,帕特里克
//編輯:
我想要做什麼:
public ArrayList<T> SelectObjects() {
// I need to get here the type name for the oql script!
//this.SelectObjects("select p from " + Class.forName(T));
}
public ArrayList<T> SelectObjects(String oql) {
try {
Iterator<T> iterator =
this.em.createQuery(oql).getResultList().iterator();
ArrayList<T> objects =
new ArrayList<T>();
while(iterator.hasNext())
{
objects.add(iterator.next());
}
return objects;
}
catch (Exception e) {
e.printStackTrace();
return null;
}
}
我建立了一個OQL腳本動態。我如何從T中獲得類型?
謝謝!
嗨JVerstry,謝謝你的回答。但我的問題是,我沒有一個實例作爲參數。在C#中,我可以做typeof(T),並獲得整個類型信息。 – bitsmuggler 2011-05-07 06:39:56
在這種情況下,除了在您的函數中傳遞類參數並從中獲取類型信息外,沒有別的選擇。 –
JVerstry
2011-05-07 12:55:07
好的 - 謝謝! – bitsmuggler 2011-05-08 10:05:36