Там public static class AbstractMap.SimpleEntry<K,V>
. Не позволяйте части Abstract
названия вводить вас в заблуждение: на самом деле это NOT abstract
класс (но его верхний уровень AbstractMap
равен).
Тот факт, что это вложенный класс static
означает, что вам НЕ нужен включающий экземпляр AbstractMap
для его создания, поэтому что-то вроде этого компилируется нормально:
Map.Entry<String,Integer> entry =
new AbstractMap.SimpleEntry<String, Integer>("exmpleString", 42);
Как отмечалось в другом ответе, в Гуаве также есть удобный 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 версия не содержит ни одного известного класса реализации, который вы можете использовать, так что вы, возможно, застряли в реализации своего собственного.