Per creare un'istanza BiMap di google-collezioni in Java
Domanda
Come è possibile creare un'istanza di un Bimap
di Google-collezioni?
Ho letto la domanda Java: un'istanza HashBiMap di Google Collection
Un campione del mio codice
import com.google.common.collect.BiMap;
public class UserSettings {
private Map<String, Integer> wordToWordID;
UserSettings() {
this.wordToWordID = new BiMap<String. Integer>();
ho cannot instantiate the type BiMap<String, Integer>
.
Soluzione
Come indicato nella domanda legata, si suppone di utilizzare i metodi create()
fabbrica.
Nel vostro caso, questo significa cambiare
this.wordToWordID = new BiMap<String. Integer>();
a
this.wordToWordID = HashBiMap.create();
Altri suggerimenti
BiMap è un'interfaccia, e come tale non può essere istanziati. È necessario creare un'istanza di una sottoclasse calcestruzzo secondo le proprietà desiderate, sottoclassi a disposizione (secondo il javadoc) sono EnumBiMap , EnumHashBiMap , HashBiMap , ImmutableBiMap .
Un altro modo intelligente per creare un BiMap, ma in questo caso un immutabili BiMap, sta utilizzando il ImmutableBiMap.Builder
.
static final ImmutableBiMap<String, Integer> WORD_TO_INT =
new ImmutableBiMap.Builder<String, Integer>()
.put("one", 1)
.put("two", 2)
.put("three", 3)
.build();