如何组合两个不可变映射<;字符串,字符串>;在Java8中?

如何组合两个不可变映射<;字符串,字符串>;在Java8中?,java,hashmap,hashtable,immutability,Java,Hashmap,Hashtable,Immutability,我尝试过以下代码: 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_passwor

我尝试过以下代码:

    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();
final ImmutableMap map1=ImmutableMap.of(“用户名”、用户名、“电子邮件”、电子邮件1、“A”、“A1”,
“l”、“500L”);
final ImmutableMap map2=ImmutableMap.of(“b”、“真”、“哈希密码”、“12345”、“e”,
“两个”、“假道具”、“假瓦尔”);
final ImmutableMap 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>
错误:(109105)java:不兼容的类型:com.google.common.collect.ImmutableMap无法转换为com.google.common.collect.ImmutableMap

我怎样才能转换它呢?

Java类型推断并不总是像我们希望的那样好。有时,您需要提供类型提示,以便it能够解决问题

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

ImmutableMap.<String, String>builder()
    .putAll(map1)
    .putAll(map2)
    .build();
ImmutableMap.builder()
.putAll(地图1)
.putAll(地图2)
.build();

put builder的显式泛型
ImmutableMap.builder().putAll(map1).putAll(map2).build()
谢谢。我使用了一个额外的点,这给了我语法错误<代码> iMutabLAMAP .<代码> >代码> Bug(),PutALL(MAP1).PUTALL(MAP2)。