假设我想要写的函数,其将创建从一些指定类型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