Мне нужно создать пустую карту.
if (fileParameters == null)
fileParameters = (HashMap<String, String>) Collections.EMPTY_MAP;
Проблема в том, что приведенный выше код выдает это предупреждение: Безопасность типов: отключенное приведение из карты в HashMap
Как лучше всего создать эту пустую карту?
java
dictionary
collections
hashmap
Хорхе
источник
источник
Ответы:
1) Если карта может быть неизменной:
Иногда вам придется использовать последнее, когда компилятор не может автоматически определить, какой тип карты необходим (это называется выводом типа ). Например, рассмотрим метод, объявленный так:
Передавая пустую карту напрямую ей, вы должны явно указать тип:
2) Если вам необходимо изменить карту, например:
(как указал Техбланкс )
Приложение : Если в вашем проекте используется Guava , у вас есть следующие альтернативы:
1) Неизменяемая карта:
Конечно, здесь нет больших преимуществ по сравнению с
Collections.emptyMap()
. Из Javadoc :2) Карта, которую можно изменить:
Maps
содержит аналогичные фабричные методы для создания экземпляров других типов карт, напримерTreeMap
илиLinkedHashMap
.Обновление (2018) : на Java 9 или новее кратчайший код для создания неизменяемой пустой карты:
... используя новые удобные фабричные методы из JEP 269 . 😎
источник
Collections.emptyMap ()
источник
Метод emptyMap класса Collections .
источник
Если вам нужен экземпляр HashMap, лучший способ:
Поскольку Map - это интерфейс, вам нужно выбрать какой-нибудь класс, который его инстанцирует, если вы хотите создать пустой экземпляр. HashMap кажется таким же хорошим, как и любой другой, поэтому просто используйте его.
источник
Либо
Collections.emptyMap()
, либо если в вашем случае вывод типа не работает,Collections.<String, String>emptyMap()
источник
Поскольку во многих случаях для нулевого безопасного проектирования используется пустая карта, вы можете использовать
nullToEmpty
служебный метод:Аналогично для наборов:
и списки:
источник
Что о :
Карта <String, String> s = Collections.emptyMap ();
источник