Там же public static class AbstractMap.SimpleEntry<K,V>
. Не позволяйте Abstract
части имени вводить вас в заблуждение: это на самом деле НЕabstract
класса (но его верхний уровеньAbstractMap
является).
Тот факт, что это static
вложенный класс, означает, что вы НЕ нужен включающий AbstractMap
экземпляр для его создания, поэтому что-то вроде этого компилируется нормально:
Map.Entry<String,Integer> entry =
new AbstractMap.SimpleEntry<String, Integer>("exmpleString", 42);
Как отмечается в другом ответе, в Guava также есть удобный static
фабричный метод, Maps.immutableEntry
который вы можете использовать.
Ты сказал:
Я не могу использовать Map.Entry
себя, потому что, очевидно, это объект только для чтения, который я не могу создать новыйinstanceof
Это не совсем точно. Причина, по которой вы не можете создать экземпляр непосредственно (то есть с помощью new
), заключается в том, что это interface Map.Entry
.
Будьте осторожны
Как отмечено в документации, AbstractMap.SimpleEntry
это@since 1.6
, поэтому, если вы застряли на 5.0, то он вам недоступен.
Чтобы найти другой известный класс implements Map.Entry
, вы можете перейти непосредственно к Javadoc. С версии Java 6
Интерфейс Map.Entry
Все известные классы реализации :
К сожалению, версия 1.5 не содержит ни одного известного класса реализации, который вы можете использовать, так что вы, возможно, застряли в реализации своего собственного.