【问题标题】:Google Guava Maps vs Java Util MapGoogle Guava Maps vs Java Util Maps
【发布时间】:2017-06-20 02:06:08
【问题描述】:

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

的语句
Map<String, List<String>> map = Maps.newHashMap();

其中Maps 是包com.google.common.collect.Maps (Google Guava)

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

Map<String, List<String>> map = new HashMap<>();

改为?

【问题讨论】:

标签: java guava


【解决方案1】:

这里的重点:在Java引入菱形运算符之前,你必须重复泛型类型参数去

Map<Whatever> myMap = new HashMap<Whatever>() 

guava 调用可以让你避免重复Whatever。换句话说:这不过是一种没有用(因此不推荐使用)的便捷方法,因为 Java 具有菱形运算符。还有它的JavaDoc clearly explains

新哈希映射

公共静态HashMap newHashMap()

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

【讨论】:

  • “换句话说:这不过是一种无用的便捷方法”。您是对的,事实上,Java 引入的许多概念通常都是后者。 Java 8 带来了许多从 Guava 中提取的改进(但不仅如此),事实上,许多 Guava 类和方法不再像现在 Java 中的标准那样需要。
【解决方案2】:

JavaDoc回答了您的问题:

Java 7 及更高版本的注意事项:此方法现在是不必要的,应视为已弃用。相反,直接使用HashSet 构造函数,利用新的“菱形”语法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-06-11
    • 1970-01-01
    • 1970-01-01
    • 2014-11-05
    • 1970-01-01
    • 2015-12-12
    • 2016-03-22
    • 1970-01-01
    相关资源
    最近更新 更多