【问题标题】:how to combine two ImmutableMap<String,String> in Java 8?如何在 Java 8 中组合两个 ImmutableMap<String,String>?
【发布时间】:2016-02-13 14:10:26
【问题描述】:

我试过这段代码:

    final ImmutableMap<String, String> map1 = ImmutableMap.of("username", userName, "email", email1, "A", "A1",
            "l", "500L");
    final ImmutableMap<String, String> map2 = ImmutableMap.of("b", "ture", "hashed_passwords", "12345", "e",
            "TWO", "fakeProp", "fakeVal");

    final ImmutableMap<String, String> map3 = ImmutableMap.builder().putAll(map1).putAll(map2).build();

但出现错误:

Error:(109, 105) java: incompatible types: com.google.common.collect.ImmutableMap<java.lang.Object,java.lang.Object> cannot be converted to com.google.common.collect.ImmutableMap<java.lang.String,java.lang.String>

否则我该如何施放它?

【问题讨论】:

  • 为构建器 ImmutableMap.&lt;String, String&gt;builder().putAll(map1).putAll(map2).build() 放置显式泛型
  • 谢谢。我使用了一个额外的点,这给了我语法错误。 ImmutableMap.&lt;String, String&gt;.builder().putAll(map1).putAll(map2).build()
  • @SimY4 考虑发布您的评论作为答案。

标签: java hashmap hashtable immutability


【解决方案1】:

Java 类型推断并不总是如我们所愿。有时,您需要为其提供类型提示才能弄清楚。

在您的情况下,您需要为 ImmutableMap 构建器方法提供显式泛型类型。

ImmutableMap.<String, String>builder()
    .putAll(map1)
    .putAll(map2)
    .build();

【讨论】:

  • 我不建议在你有重复键的情况下使用这个
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-05-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-15
  • 2021-11-08
  • 2014-04-26
相关资源
最近更新 更多