2016-01-29 7 views
5

Ich versuche, eine Map<BooleanSupplier, List<String>> als Teil meiner Strömung zu machen Ich mache die Lieferanten und versuche dann, einen unveränderlichen Kartenerbauer zu benutzen.Art der unveränderlichen Karte mit Erbauer

Etwas wie:

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

Das Problem ist, dass intellij sagt, dass die Typen auch nicht konvertierbar sind, wenn ich eine explizite Umwandlung tun, weil der ImmutableMap vom Typ <Object, Object>. Gibt es eine Möglichkeit, den Builder für unveränderbare Karte explizit vom Typ ImmutableMap<BooleanSupplier, List<String>> zu konvertieren oder zu initialisieren?

Antwort

8

den generischen Typen explizit angeben, wenn builder() Aufruf:

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

auch wert, dass dies besser als 'ImmutableListMultimap' ausgedrückt werden. –

+0

@LouisWasserman Würde es Ihnen etwas ausmachen, warum zu erklären? –