我需要初始化一个ImmutableMap(番石榴21.0),我需要它来解析一个Map>对于这个例子,我将只使用String。
所以我有:
import com.google.common.collect.ImmutableMap;
public class MyClass {
private Map<String,String> testMap =
ImmutableMap<String,String>.builder().put("a","b").build();
在最后一行,我得到了大量的编译器错误。使用ImmutableMap<String,String>.of()
会得到相同的结果。
如果我删除,我只会收到一个错误,类型不匹配。
当我想要一个具有显式类型的地图时,如何将ImmutableMap用于显式(类文字)初始化?
答案 0 :(得分:7)
在点后放置泛型类型:
private Map<String, String> testMap =
ImmutableMap.<String, String>builder().put("a","b").build();
详情请见Angelika Langer's Generics FAQ section on "What is explicit type argument specification?"。
答案 1 :(得分:1)
如果您不需要使用构建器,则无需指定泛型类型参数。
只需使用:
Map<String, String> map = ImmutableMap.of("a", "b");
通用类型参数将由编译器推断。
另一方面,如果您需要使用构建器,那么@Xaerxess的答案将解释您需要做什么。