使用生成器定义不可变地图的类型

2022-09-03 04:35:52

我正在尝试使一个作为我的流程的一部分,我制作供应商,然后尝试使用不可变的地图构建器。Map<BooleanSupplier, List<String>>

像这样:

 //Build up BooleanSuppliers
 Map<BooleanSupplier, List<String>> bsList = ImmutableMap.builder()
 .put(bs1, Collections.singletonList("bs1string"))
 .put(bs2, Arrays.asList("bs4","bs6"))
 ....
 .build();

问题是,intellij说,即使我进行了显式转换,这些类型也是不可转换的,因为ImmutableMap的类型是 。有没有办法显式转换或初始化不可变地图构建器的类型?<Object, Object>ImmutableMap<BooleanSupplier, List<String>>


答案 1

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

Map<BooleanSupplier, List<String>> bsList = 
    ImmutableMap.<BooleanSupplier, List<String>>builder()
        .put(...)
        .build();

答案 2