Определение типа неизменяемой карты с помощью Builder

Я пытаюсь сделать 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();