Jest public static class AbstractMap.SimpleEntry<K,V>
. Nie daj się Abstract
zwieść części nazwy: w rzeczywistości NIE jest to abstract
klasa (ale jej najwyższy poziomAbstractMap
to).
Fakt, że jest to static
klasa zagnieżdżona, oznacza, że NIE potrzebujesz otaczającej AbstractMap
instancji, aby utworzyć jej instancję, więc coś takiego wygląda dobrze:
Map.Entry<String,Integer> entry =
new AbstractMap.SimpleEntry<String, Integer>("exmpleString", 42);
Jak zauważono w innej odpowiedzi, Guava ma również wygodną static
metodę fabryczną Maps.immutableEntry
, z której można skorzystać.
Powiedziałeś:
Nie mogę użyć Map.Entry
siebie, ponieważ najwyraźniej jest to obiekt tylko do odczytu, którego nie mogę utworzyćinstanceof
To nie do końca dokładne. Powodem, dla którego nie można utworzyć go bezpośrednio (tj. Za pomocą new
) jest to, że jest to plik interface Map.Entry
.
Zastrzeżenie i wskazówka
Jak zauważono w dokumentacji, AbstractMap.SimpleEntry
jest@since 1.6
, więc jeśli utkniesz do 5,0, to nie jest dostępne.
Aby poszukać innej znanej klasy implements Map.Entry
, możesz przejść bezpośrednio do javadoc. Z wersji Java 6
Interfejs Mapa. Wejście
Wszystkie znane klasy wdrożeniowe :
Niestety wersja 1.5 nie zawiera żadnej znanej klasy implementacyjnej, której możesz użyć, więc być może utknąłeś przy implementacji własnej.