Pour instancier BiMap de google-collections en Java
Question
Comment pouvez-vous instancier un Bimap
de Google-collections?
J'ai lu la question Java: Instanciez de HashBiMap Google Collection
Un échantillon de mon code
import com.google.common.collect.BiMap;
public class UserSettings {
private Map<String, Integer> wordToWordID;
UserSettings() {
this.wordToWordID = new BiMap<String. Integer>();
Je reçois cannot instantiate the type BiMap<String, Integer>
.
La solution
Comme indiqué dans la question liée, vous êtes censé utiliser les méthodes d'usine create()
.
Dans votre cas, cela signifie changer
this.wordToWordID = new BiMap<String. Integer>();
à
this.wordToWordID = HashBiMap.create();
Autres conseils
BiMap est une interface, et en tant que telle ne peut pas être instancié. Vous devez instancier une sous-classe de béton selon les propriétés souhaitées, les sous-classes disponibles (selon le javadoc) sont EnumBiMap , EnumHashBiMap , HashBiMap , ImmutableBiMap .
Une autre façon cool de créer un BiMap, mais dans ce cas une BiMap immuable, utilise le 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();