سؤال

كيف يمكنك إنشاء مثيل Bimap من مجموعات Google؟

لقد قرأت السؤال Java: إنشاء إنشاء 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., 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.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top