什么意思 在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>();
}

KV是必须解析为某种类型(类名或接口名称)的常规标识符。

例如,如果你想要一个返回带有HashMap键和String值的Integer的方法,你可以写:

public static HashMap<String,Integer> newInstance() {
    return new HashMap<String,Integer>();
}

此方法将始终返回HashMap<String,Integer>,因此您只能将其指定给:

HashMap<String,Integer> map = newInstance();

但是,如果您希望KV是泛型类型参数,则必须将它们声明为此类。这就是你用<K,V>做的事情:

public static <К, V> HashMap<K, V> newInstance() {
    return new HashMap<K, V>();
}

这允许您使用此方法返回不同键和值类型的HashMaps:

HashMap<String,Integer> map1 = newInstance();
HashMap<Long,Boolean> map2 = newInstance();
...

以上是关于什么意思 在HashMap之前 ? Java中的泛型[重复]的主要内容,如果未能解决你的问题,请参考以下文章

C#中的泛型是啥意思?

java中的Map有啥用呢

Java中的泛型方法

Java中的泛型方法

Java中的泛型方法

java中啥叫泛型??