什么意思 在HashMap之前 ? Java中的泛型[重复]
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了什么意思 在HashMap之前 ? Java中的泛型[重复]相关的知识,希望对你有一定的参考价值。
这个问题在这里已有答案:
我正在读“Java中的有效编程”一书,在阅读过程中,我遇到了这样一段代码片段:
public static <К, V> HashMap<K, V> newInstance() {
return new HashMap<K, V>();
}
什么表达<K, V>
静态和HashMap<K,V>
如何被称为和工作?我听说过仿制药,但我不太了解它们,我想知道为什么不可能写一些像:
public static HashMap<K, V> newInstance() {
return new HashMap<K, V>();
}
为什么在HashMap<K, V>
之前我需要写<К, V>
?
答案
当你写作
public static HashMap<K, V> newInstance() {
return new HashMap<K, V>();
}
K
和V
是必须解析为某种类型(类名或接口名称)的常规标识符。
例如,如果你想要一个返回带有HashMap
键和String
值的Integer
的方法,你可以写:
public static HashMap<String,Integer> newInstance() {
return new HashMap<String,Integer>();
}
此方法将始终返回HashMap<String,Integer>
,因此您只能将其指定给:
HashMap<String,Integer> map = newInstance();
但是,如果您希望K
和V
是泛型类型参数,则必须将它们声明为此类。这就是你用<K,V>
做的事情:
public static <К, V> HashMap<K, V> newInstance() {
return new HashMap<K, V>();
}
这允许您使用此方法返回不同键和值类型的HashMap
s:
HashMap<String,Integer> map1 = newInstance();
HashMap<Long,Boolean> map2 = newInstance();
...
以上是关于什么意思 在HashMap之前 ? Java中的泛型[重复]的主要内容,如果未能解决你的问题,请参考以下文章