如何在 Java 8 中合并两个 ImmutableMap<String,String>?
how to combine two ImmutableMap<String,String> in Java 8?
我试过这个代码:
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>
否则我该如何施法?
Java 类型推断并不总是像我们希望的那样好。有时,您需要为其提供类型提示才能解决问题。
在您的情况下,您需要为 ImmutableMap 构建器方法提供显式泛型类型。
ImmutableMap.<String, String>builder()
.putAll(map1)
.putAll(map2)
.build();
我试过这个代码:
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>
否则我该如何施法?
Java 类型推断并不总是像我们希望的那样好。有时,您需要为其提供类型提示才能解决问题。
在您的情况下,您需要为 ImmutableMap 构建器方法提供显式泛型类型。
ImmutableMap.<String, String>builder()
.putAll(map1)
.putAll(map2)
.build();