如何在方法声明中使用泛型

刺身康德

我有一个初始化的控制器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() > ();
}
托比亚斯·利夫克(Tobias Liefke)

作为Class<?>通用类型,您还可以使用:

public static <K,V> void testMyMethods(Class<K> k, Class<V> v) {
    Map<K, V> hm = new HashMap<>();
    ...
}

但是,只要您不使用kv,就不需要提供以下任何一个:

public static <K, V> void testMyMethods() {
    Map<K, V> hm = new HashMap<>();
    ...
}

我在声明中将HashMap更改为Map,有关说明,请参见有效Java-项目52

我使用了钻石运算符<>,该运算符从Java 7开始可用。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章