Es gibt public static class AbstractMap.SimpleEntry<K,V>. Lassen Sie sich nicht der AbstractTeil des Namens Sie täuschen: es ist in der Tat nicht eine abstractKlasse (aber in der obersten Ebene AbstractMapist).
Die Tatsache, dass es sich um eine staticverschachtelte Klasse handelt, bedeutet, dass Sie KEINE umschließende AbstractMapInstanz 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 staticFactory-Methode Maps.immutableEntry, die Sie verwenden können.
Du sagtest:
Ich kann mich nicht Map.Entryselbst 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.SimpleEntrysteht @since 1.6es Ihnen also nicht zur Verfügung, wenn Sie sich an 5.0 halten.
Um nach einer anderen bekannten Klasse zu suchen, implements Map.Entrykö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.