以Java实例化Google收藏夹的BiMap

问题描述 投票:15回答:4

您如何实例化Google收藏夹的Bimap

我已经阅读了问题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>

java guava bimap
4个回答
34
投票

如链接的问题所述,您应该使用create()工厂方法。

在您的情况下,这意味着更改

this.wordToWordID = new BiMap<String. Integer>();

to

this.wordToWordID = HashBiMap.create(); 

6
投票

BiMap是一个接口,因此无法实例化。您需要根据所需的属性实例化一个具体的子类,可用的子类(根据javadoc)是EnumBiMapEnumHashBiMapHashBiMapImmutableBiMap


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


-1
投票

文档更新链接:BiMap(接口)

((隐式类):EnumBiMapEnumHashBiMapHashBiMap ImmutableBiMap] >>

© www.soinside.com 2019 - 2024. All rights reserved.