2016-01-29 42 views
5

我正在嘗試使Map<BooleanSupplier, List<String>>成爲我的流程的一部分,然後嘗試使用不可變映射構建器。定義使用Builder的不可變映射的類型

喜歡的東西:

//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>>類型?

回答

8

調用builder()時明確地指定泛型類型:

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

另外值得注意的是,這可能是更好的表述爲'ImmutableListMultimap'。 –

+0

@LouisWasserman你介意解釋一下爲什麼? –

相關問題