我有一个初始化的控制器HashMap
(例如)。我如何在HashMap的通用声明中使用k和v
public static void testMyMethods(Class k, Class v) {
// Tried the below code, but it is having compile time issues
HashMap < k.getClass(), v.getClass() > hm = new HashMap < k.getClass(), k.getClass() > ();
}
作为Class<?>
通用类型,您还可以使用:
public static <K,V> void testMyMethods(Class<K> k, Class<V> v) {
Map<K, V> hm = new HashMap<>();
...
}
但是,只要您不使用k
和v
,就不需要提供以下任何一个:
public static <K, V> void testMyMethods() {
Map<K, V> hm = new HashMap<>();
...
}
我在声明中将HashMap更改为Map,有关说明,请参见有效Java-项目52。
我使用了钻石运算符<>
,该运算符从Java 7开始可用。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句