Es gibt public static class AbstractMap.SimpleEntry<K,V>
. Lassen Sie sich nicht der Abstract
Teil des Namens Sie täuschen: es ist in der Tat nicht eine abstract
Klasse (aber in der obersten Ebene AbstractMap
ist).
Die Tatsache, dass es sich um eine static
verschachtelte Klasse handelt, bedeutet, dass Sie KEINE umschließende AbstractMap
Instanz benötigen , um sie zu instanziieren. So etwas lässt sich also gut kompilieren:
Map.Entry<String,Integer> entry =
new AbstractMap.SimpleEntry<String, Integer>("exmpleString", 42);
Wie in einer anderen Antwort erwähnt, verfügt Guava auch über eine praktische static
Factory-Methode Maps.immutableEntry
, die Sie verwenden können.
Du sagtest:
Ich kann mich nicht Map.Entry
selbst verwenden, da es anscheinend ein schreibgeschütztes Objekt ist, das ich nicht neu instanziieren kanninstanceof
Das ist nicht ganz richtig. Der Grund, warum Sie es nicht direkt instanziieren können (dh mit new
), ist, dass es ein ist interface Map.Entry
.
Vorbehalt und Trinkgeld
Wie in der Dokumentation angegeben, AbstractMap.SimpleEntry
steht @since 1.6
es Ihnen also nicht zur Verfügung, wenn Sie sich an 5.0 halten.
Um nach einer anderen bekannten Klasse zu suchen, implements Map.Entry
können Sie tatsächlich direkt zum Javadoc gehen. Ab der Java 6 Version
Interface Map.Entry
Alle bekannten Implementierungsklassen :
Leider listet die Version 1.5 keine bekannte Implementierungsklasse auf, die Sie verwenden können, sodass Sie möglicherweise nicht in der Lage sind, Ihre eigene zu implementieren.