Google Guava Maps与Java Util Map

hat*_*lla -3 java guava

在查看开源代码时,我多次遇到类似的语句

Map<String, List<String>> map = Maps.newHashMap();
Run Code Online (Sandbox Code Playgroud)

Maps包装在哪里com.google.common.collect.Maps(谷歌番石榴)

为什么我们不能简单地使用标准:

Map<String, List<String>> map = new HashMap<>();
Run Code Online (Sandbox Code Playgroud)

代替?

Gho*_*ica 6

重点是:在Java引入菱形运算符之前,您必须在执行时重复泛型类型参数

Map<Whatever> myMap = new HashMap<Whatever>() 
Run Code Online (Sandbox Code Playgroud)

番石榴叫声让你避免重复Whatever.换句话说:由于Java具有菱形运算符,因此这只是一种无用的便利方法(并因此被弃用).它的JavaDoc清楚地解释了这一点.

newHashMap

public static HashMap newHashMap()

...

Java 7及更高版本的注意事项:现在不需要此方法,应将其视为已弃用.相反,直接使用HashMap构造函数,利用新的"菱形"语法.