Разница в поведении HashMap в режиме отладки и нормальной версии

-5

У меня есть требование динамически добавлять ключ и значения в hashmap из файлов свойств без перезапуска сервера. Поэтому я создал статический хэш файл в моем объекте, который загружает данные из файла при запуске сервера. Поэтому при последующем добавлении свойств я обновлю этот хэш. Вот мой экземпляр HashMap.

private static Map<String, String> map = new HashMap<>();

Итак, теперь, когда я добавляю свойство, я инициализирую карту, и теперь, если я выполняю свой основной метод, поскольку он является одним и тем же загрузчиком классов, я все еще вижу новое значение на моей карте, когда просматриваю режим DEBUG. Например: если я добавляю Европу = ЕС в качестве нового свойства, я вижу это значение в режиме отладки с другими свойствами как [Европа = ЕС, Индия = IN], и если я запустил строку map.get("Европа"), я получаю значение как null.

Я не понимаю этого поведения. Это что-то не означает, что я делаю что-то неправильно. Вот мой код:

public class CountryMap {

private static Map<String, String> map = new HashMap<>();

private static final CountryMap countrymap = new CountryMap();

static {
initmap();
}

private static void initmap() {
IPropertyReader reader = (IPropertyReader) MyAppContext
.getInstance().getBean("propreader"); //To read from location files
try {
Properties props = reader.loadPropertyFile();
Set<Entry<Object, Object>> propset = props.entrySet();
for (Entry<Object, Object> entry : propset) {
map.put((String) entry.getKey(),
entry.getValue().toString());
}
} catch (Throwable e) {
e.printStackTrace();
}
}

public static CountryMap getInstance() {
return countrymap;
}

public String getvalue(String key) {
return map.get(key);
}

public void addtomap(String key, String value) {
map.put(key, value);
}
}

спросил(а) 2015-05-28T10:19:00+03:00 4 года, 6 месяцев назад
1
1 ответ
48

Вам действительно нужен хэшмап? Может быть, вы идете с уже существующей конфигурацией сообщества и стратегией перезагрузки? https://commons.apache.org/proper/commons-configuration/userguide_v1.10/howto_filebased.html

ответил(а) 2015-05-28T10:32:00+03:00 4 года, 6 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема