Java で google-collections の BiMap をインスタンス化するには
質問
どうすればインスタンス化できますか 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
所属していません StackOverflow