在查看开源代码时,我多次遇到像
这样的语句Map<String, List<String>> map = Maps.newHashMap();
其中Maps
是包com.google.common.collect.Maps
(Google Guava)
为什么我们不能简单地使用标准:
Map<String, List<String>> map = new HashMap<>();
代替?
答案 0 :(得分:6)
这里的要点:在Java引入菱形运算符之前,你必须在
时重复泛型类型参数Map<Whatever> myMap = new HashMap<Whatever>()
番石榴召唤让你避免重复Whatever
。换句话说:由于Java具有菱形运算符,因此这只是一种无用的便利方法(并因此被弃用)。它的JavaDoc clearly explains那个。
newHashMap
public static HashMap newHashMap()
...
Java 7及更高版本的注意事项:现在不需要此方法,应将其视为已弃用。相反,直接使用HashMap构造函数,利用新的“菱形”语法。
答案 1 :(得分:1)
Java 7及更高版本的注意事项:现在不需要此方法,应将其视为已弃用。相反,直接使用
HashSet
构造函数,利用新的“菱形”语法。