Para instanciar bitmap do Google-coleções em Java
Pergunta
Como você pode instanciar um Bimap
de Google-coleções?
Eu li a questão Java: HashBiMap Instantiate Google Coleção de
Uma amostra do meu código
import com.google.common.collect.BiMap;
public class UserSettings {
private Map<String, Integer> wordToWordID;
UserSettings() {
this.wordToWordID = new BiMap<String. Integer>();
Eu recebo cannot instantiate the type BiMap<String, Integer>
.
Solução
Como afirmado na questão ligada, você é suposto a usar os métodos create()
fábrica.
No seu caso, isso significa mudar
this.wordToWordID = new BiMap<String. Integer>();
para
this.wordToWordID = HashBiMap.create();
Outras dicas
bitmap é uma interface, e como tal não pode ser instanciada. Você precisa instanciar uma subclasse concreta de acordo com as propriedades desejadas, subclasses disponíveis (de acordo com o javadoc) são EnumBiMap , EnumHashBiMap , HashBiMap , ImmutableBiMap .
Outra forma legal de se criar um bitmap, mas neste caso um bitmap imutável, está usando o 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();