Para crear una instancia de BIMAP google-colecciones en Java
Pregunta
¿Cómo se puede crear una instancia de un Bimap
de Google-colecciones?
He leído la pregunta Java: Crear una instancia de Google HashBiMap Colección
Una muestra de mi código
import com.google.common.collect.BiMap;
public class UserSettings {
private Map<String, Integer> wordToWordID;
UserSettings() {
this.wordToWordID = new BiMap<String. Integer>();
consigo cannot instantiate the type BiMap<String, Integer>
.
Solución
Como se indica en la pregunta vinculada, que se supone que utilizar los métodos de fábrica create()
.
En su caso, esto significa cambiar
this.wordToWordID = new BiMap<String. Integer>();
a
this.wordToWordID = HashBiMap.create();
Otros consejos
BIMAP es una interfaz, y como tal no puede ser instanciada. Es necesario crear una instancia de una subclase concreta de acuerdo con las propiedades que desee, subclases disponibles (según el javadoc) son EnumBiMap , EnumHashBiMap , HashBiMap , ImmutableBiMap .
Otra manera fresca para crear un BIMAP, pero en este caso un BIMAP inmutable, está utilizando el 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();