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

¿Fue útil?

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

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

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top