我使用Java 6,我有以下代碼...如何從編譯類型獲取類對象?
public abstract class AbstractHibernateDAO<T>
{
...
protected T find(final Serializable id)
{
T ret = null;
if (id != null)
{
ret = m_entityManager.find(T, id);
} // if
return ret;
}
上有一個編譯時錯誤 「RET = m_entityManager.find(T,ID);」因爲該方法的第一個參數應該是一個java.lang.Class對象,但是,我不知道如何創建一個給定「T」編譯時引用或者即使這是可能的。任何幫助表示讚賞。
你不能在一般情況下,由於類型擦除。通常你會有一個構造函數接受'Class'。我敢肯定這是一個騙局,但我還沒有找到相關的重複 - 將繼續尋找。 –
2015-02-05 17:46:09
*「,因爲該方法的第一個參數應該是java.lang.Class對象」* T「不會是java.lang.Class對象。你想'T.class',那也不會編譯。 – 2015-02-05 17:48:00
如果您發現重複,請確認此解決方案適用於Java 6. – 2015-02-05 18:19:22