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();