Q
實例類型的通用
2
A
回答
7
您需要使用反射(newInstance()
),因爲在編譯時其構造函數需要鏈接的類未知。所以編譯器不能生成鏈接。
7
由於類型擦除:泛型類型不知道在執行時什麼T
是,所以它不能調用正確的構造函數。
1
也許,你看這個模式(從答案帶到另一個question):
private static class SomeContainer<E>
{
E createContents(Class<E> clazz)
{
return clazz.newInstance();
}
}
在這裏,當我們創建一個SomeContainer
,我們parametize的實例與具體類(如String
) 。 createContents
只接受String.class
而String.class.newInstance()
將創建一個新的(空的)字符串。
0
如果您在編譯時知道類型,請使用「new Whatever()」。如果您在編譯時不知道該類型,但可以爲它獲取一個Class對象,請使用newInstance()。
99%的時間我知道類型,我用「新的Whatever()」。
相關問題
- 1. 無法實例與普通類類型
- 2. AWS:通過AMI將實例類型更新爲不支持的實例類型
- 3. 實例化的子類通用類型類
- 4. 在運行時使用字段類型實例化通用類
- 5. 實例化實現通用接口實例的所有類
- 6. 將動態類型的實例傳遞給通用類中的泛型方法
- 7. 實例化通用類時傳遞類型變量
- 8. 「無法實例的類型......」
- 9. 類型的實例變量
- 10. 模型類的codeigniter實例
- 11. 使用泛型類型實例化DynamoDBQueryExpression
- 12. 投泛型類型的實例爲「模板」的實例
- 13. 無法實例類型的實例在Java中的Weka類
- 14. 如何在java中動態聲明實例的通用類型
- 15. 如何實例化一個未知類型的通用列表?
- 16. 類型類的多態實例實例化
- 17. 泛型類型的返回實例
- 18. 持有泛型類型的實例 - C++
- 19. 從泛型類型的Swift實例化
- 20. 泛型類型的實例化?
- 21. 實例化Kotlin中的泛型類型
- 22. 類的多個實例變量類型?
- 23. Swift:從類的實例獲取類型
- 24. 製作類型類的實例列表
- 25. 查找類型的類實例
- 26. 作爲類型類實例的函數?
- 27. 類型的類實例重新定義
- 28. DataKinds和類型實例
- 29. 實例化泛型類
- 30. ec2實例cpu類型
關聯:http://stackoverflow.com/questions/75175/create-instance-of-generic-type-in-java,http://stackoverflow.com/questions/731452/create-instance-of-泛型 – 2010-07-06 14:35:14
如果'T'沒有合適的構造函數呢? – 2010-07-06 15:25:14