只有在運行時我在通過了完整的類名(即「com.firm.me.MyClass」)需要傳遞一個泛型類的類型參數的基礎上,合格的類名稱的字符串
我需要實例化一個通用類,定義爲:
Class A <T>
{
}
其中「T」是與傳入的全限定類名稱關聯的類型。
我有以下幾點:
Class <?> clazz = Class.forName ("com.firm.me.MyClass");
我想(從邏輯上說)有類似的東西..
A <clazz> myInstance = new A <clazz>;
上面的使用位置「clazz中」的會引起以下錯誤:
「clazz無法解析爲類型」。
我該如何做我想做的事(邏輯上)。
非常感謝。
由於類型擦除'A myInstance'無論如何都會解析爲'A myInstance',所以即使你得到了這個工作,你也不會從中受益。你究竟想要做什麼? –
Thomas
2014-09-05 09:22:18
我有一個序列化的持久數據存儲。可能有幾家商店,並且每個商店內的所有對象都是相同類型的。我在「A類」上面給出的類例子實例化了我的持久/提取類。我想要做的是讓用戶輸入保存在其數據存儲中的數據類型的類名,以便我可以使用通用的基於命令行的應用程序,然後可以使用該應用程序來檢索其數據。我想基於它們從命令行 –
user1151685
2014-09-05 09:49:29
@ user1151685輸入的完全限定類名實例化persist/retriever實例,您應該在類A中聲明一個成員變量,並通過構造函數初始化它。讓我知道下面的解決方案解決您的問題 – 2014-09-05 10:02:30