В Java 11 есть набор статических методов в java.util.Map
, которые позволяют создавать экземпляры AbstractImmutableMap
:
static <K, V> Map<K, V> of(K k1, V v1) { return new Map1(k1, v1); }
static <K, V> Map<K, V> of(K k1, V v1, K k2, V v2) { return new MapN(new Object[]{k1, v1, k2, v2}); }
// ... some more "vararg" static methods until 10 pairs (inclusive).
Есть также другой метод, который делает почти то же самое, за исключением того, что это правда -vararg:
static <K, V> Map<K, V> ofEntries(Map.Entry<? extends K, ? extends V>... entries) { /* impl here */ }
Я хочу использовать последний метод, поскольку он позволяет расширить количество записей далеко за десять. Проблема в том, что я не знаю, как создать Map.Entry
. Он имеет много реализаций в различных Map
s, но для него нет оператора new
или статического метода фабрики, в то время как Map
имеет его.
Map#ofEntries
также используется внутри Map#copyOf
, но я не могу найти способ использовать его без уже существующей реализации Map
с некоторыми записями. : /
Я пытался найти его, но не смог найти ответ.
➥ Итак, мой вопрос: как предполагалось использовать Map#ofEntries
? Или есть способ создания Map.Entry
без написания собственной реализации или использования анонимных классов?