Zu instanziieren bimap Google-Sammlungen in Java
Frage
Wie kann man eine Bimap
von Google-Sammlungen instanziiert?
Eine Probe von meinem Code
import com.google.common.collect.BiMap;
public class UserSettings {
private Map<String, Integer> wordToWordID;
UserSettings() {
this.wordToWordID = new BiMap<String. Integer>();
ich cannot instantiate the type BiMap<String, Integer>
.
Lösung
Wie in der verknüpften Frage gesagt, Sie sollen die create()
Factory-Methoden verwenden.
In Ihrem Fall bedeutet dies, ändert
this.wordToWordID = new BiMap<String. Integer>();
this.wordToWordID = HashBiMap.create();
Andere Tipps
bimap ist eine Schnittstelle, und als solche kann nicht instanziert werden. Sie brauchen eine konkrete Unterklasse nach den Eigenschaften, die Sie wollen, zur Verfügung Unterklassen (nach dem javadoc) sind EnumBiMap , EnumHashBiMap , HashBiMap , ImmutableBiMap .
Eine andere kühle Art und Weise eine bimap, aber in diesem Fall ein unveränderliches bimap zu schaffen, wird mit dem 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();
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow