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>.

È stato utile?

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();

http: // docs. guava-libraries.googlecode.com/git/javadoc/com/google/common/collect/ImmutableBiMap.html

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top