Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / EmptyMap / 5 сообщений из 5, страница 1 из 1
12.12.2016, 15:41
    #39364993
-=Koba=-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
EmptyMap
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
    @Override
    public Map<String, String> readNsiSubdivision() {
        Map<String, String> result = Collections.emptyMap();
        List<NsiSubdivision> nsiSubdivisionList = Collections.emptyList();
        try {
            CriteriaBuilder cb = em.getCriteriaBuilder();
            CriteriaQuery<NsiSubdivision> query = cb.createQuery(NsiSubdivision.class);
            nsiSubdivisionList = em.createQuery(query).getResultList();
            for (NsiSubdivision nsiSubdivision : nsiSubdivisionList) {
                String key = String.valueOf(nsiSubdivision.getId());
                String value = nsiSubdivision.getShortName();
                result.put(key, value);
            }
        } catch (Throwable e) {
            ERROR_LOGGER.debug("Getting NsiSubdivision ERROR - " + e.getMessage());
        }
        return result;
    }



Так как result immutable я добавить туда ничего не могу
Как правильно работать с emptyMap? If вставлять или заменять emptyMap на new HashMap?
...
Рейтинг: 0 / 0
12.12.2016, 16:15
    #39365045
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
EmptyMap
Collections.EMPTY_MAP так спроектирован. Вообще он - для оптимизации узких мест. Константа ибо.

А если нужно создать экземпляр Map то надо (как-ни странно) использовать конструктор
либо HashMap, либо TreeMap либо еще бох весть какие реализации которые вы найдете.
...
Рейтинг: 0 / 0
13.12.2016, 09:18
    #39365435
-=Koba=-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
EmptyMap
maytonCollections.EMPTY_MAP так спроектирован. Вообще он - для оптимизации узких мест. Константа ибо.

А если нужно создать экземпляр Map то надо (как-ни странно) использовать конструктор
либо HashMap, либо TreeMap либо еще бох весть какие реализации которые вы найдете.

Просто хотел обыграть ситуацию с null, чтоб не возвращать

Тогда в чем разница будет
Map<String, String> result = Collections.emptyMap();
Map<String, String> result = new HashMap()
...
Рейтинг: 0 / 0
13.12.2016, 11:00
    #39365533
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
EmptyMap
-=Koba=-Тогда в чем разница будет
Map<String, String> result = Collections.emptyMap();
Map<String, String> result = new HashMap()
Да, ни в чем не будет. Используй new HashMap(), только про алмазик не забудь.
...
Рейтинг: 0 / 0
13.12.2016, 12:09
    #39365595
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
EmptyMap
-=Koba=-Просто хотел обыграть ситуацию с null, чтоб не возвращать

Тогда в чем разница будет
Map<String, String> result = Collections.emptyMap();
Map<String, String> result = new HashMap()
Ты правильно ее обыграл. Просто разница будет в том что emptyMap() будет вызывать UnsupportedOperationException
при любой попытке модифицировать ее экземпляр.

Вообще посмотри исходники Collectionss.java. Там все очень прозрачно.
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / EmptyMap / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]