Создать экземпляр BiMap Из google-коллекций на Java
Вопрос
Как вы можете создать экземпляр Bimap
из Google-коллекций?
Я прочитал этот вопрос Java - Язык:Создание экземпляра HashBiMap из коллекции Google
Пример моего кода
import com.google.common.collect.BiMap;
public class UserSettings {
private Map<String, Integer> wordToWordID;
UserSettings() {
this.wordToWordID = new BiMap<String. Integer>();
Я получаю cannot instantiate the type BiMap<String, Integer>
.
Решение
Как указано в связанном вопросе, вы должны использовать create()
фабричные методы.
В вашем случае это означает изменение
this.wordToWordID = new BiMap<String. Integer>();
Для
this.wordToWordID = HashBiMap.create();
Другие советы
БиМап является интерфейсом и как таковой не может быть создан.Вам нужно создать экземпляр конкретного подкласса в соответствии с желаемыми свойствами, доступными подклассами (в соответствии с javadoc) являются Перечисление изображений, Перечислениеhashbimap, Хэшбимап, Неизменяемый образ.
Еще один интересный способ создать BiMap, но в данном случае неизменяемый BiMap, - это использовать 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