如何实例化Bimap
Google集合?
我已阅读问题Java: Instantiate Google Collection's HashBiMap
我的代码示例
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>
。
答案 0 :(得分:33)
如链接问题所述,您应该使用create()
工厂方法。
在您的情况下,这意味着更改
this.wordToWordID = new BiMap<String. Integer>();
到
this.wordToWordID = HashBiMap.create();
答案 1 :(得分:6)
创建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
答案 2 :(得分:5)
BiMap是一个接口,因此无法实例化。您需要根据所需的属性实例化具体的子类,可用的子类(根据javadoc)是EnumBiMap,EnumHashBiMap,HashBiMap,ImmutableBiMap。