質問

どうすればインスタンス化できますか Bimap Google コレクションの?

質問を読みました ジャバ:Google コレクションの 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>.

役に立ちましたか?

解決

リンクされた質問に記載されているように、を使用することになっています。 create() ファクトリーメソッド。

あなたの場合、これは変更することを意味します

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

this.wordToWordID = HashBiMap.create(); 

他のヒント

バイマップ はインターフェイスであるため、インスタンス化できません。必要なプロパティに従って具象サブクラスをインスタンス化する必要があります。利用可能なサブクラス(javadoc によると)は次のとおりです。 EnumBiMap, EnumHashBiMap, ハッシュビマップ, 不変BiMap.

BiMap を作成するもう 1 つの優れた方法 (この場合は不変 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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top