Java 使用生成器定义不可变映射的类型

Java 使用生成器定义不可变映射的类型,java,collections,guava,Java,Collections,Guava,我试图制作一个地图,作为我流程的一部分,我制作供应商,然后尝试使用一个不变的地图生成器 比如: //Build up BooleanSuppliers Map<BooleanSupplier, List<String>> bsList = ImmutableMap.builder() .put(bs1, Collections.singletonList("bs1string")) .put(bs2, Arrays.asList("bs4","bs6")) ..

我试图制作一个
地图
,作为我流程的一部分,我制作供应商,然后尝试使用一个不变的地图生成器

比如:

 //Build up BooleanSuppliers
 Map<BooleanSupplier, List<String>> bsList = ImmutableMap.builder()
 .put(bs1, Collections.singletonList("bs1string"))
 .put(bs2, Arrays.asList("bs4","bs6"))
 ....
 .build();
//建立布尔供应商
Map bsList=ImmutableMap.builder()
.put(bs1,Collections.singletonList(“bs1string”))
.put(bs2,array.asList(“bs4”,“bs6”))
....
.build();

问题是intellij说,即使在执行显式强制转换时,类型也不可转换,因为ImmutableMap的类型是
。是否有方法显式强制转换或初始化不可变映射生成器,使其类型为
ImmutableMap

在调用
builder()时显式指定泛型类型:

Map bsList=
ImmutableMap.builder()
.put(…)
.build();

还值得注意的是,这可以更好地表示为
ImmutableListMultimap
Map<BooleanSupplier, List<String>> bsList = 
    ImmutableMap.<BooleanSupplier, List<String>>builder()
        .put(...)
        .build();