假設我想要寫的函數,其將創建從一些指定類型T爲String一個HashMap,例如從整數到字符串一個HashMap如下:問題,使用Java反射
HashMap<Integer, String> myHashMay = new HashMap<Integer, String>()
;
我想擁有的flexibilty指定類型T.所以我寫一個函數:
void foo(Class<?> myClass) {
HashMap<myClass, String> myHashMay = new HashMap<myClass, String>();
.......
}
所以,如果我調用FOO(Integer.class),整數到字符串一個HashMap將創建在這個函數裏面。顯然上面的foo函數甚至沒有編譯。任何人都可以給我一些關於如何用給定的函數簽名來正確編寫這樣一個函數的提示。
謝謝,
我覺得強制要注意的是,如果你用反射實例化一個對象,那麼在編譯時就沒有類型信息,所以你必須做一個未經檢查的強制轉換。換句話說,你不能用反射來實例化一個HashMap,只是一個HashMap。 –
2010-01-21 00:17:54