У меня есть ConcurrentSkipListMap с нечувствительным ключом:
public static ConcurrentMap<String, GooglePlayGame> games = new ConcurrentSkipListMap<String, GooglePlayGame>(String.CASE_INSENSITIVE_ORDER);
Если я запускаю свое приложение в первый раз и добавляю к запросу пользователя карты, например, я выполнил --games.put ("Oddmar", .. .) -, если пользователь после этого запросит - / game oddmar (odDmar или что-то еще) - это будет работать, но .. Я всегда загружаю свою карту из файла json при запуске в блок * stati c:
static {
TypeFactory typeFactory = mapper.getTypeFactory();
MapType mapType = typeFactory.constructMapType(ConcurrentSkipListMap.class, String.class, GooglePlayGame.class);
try {
games = mapper.readValue(new File(
"gpgames_library.json"), mapType);
} catch (IOException e) {
e.printStackTrace();
}
}
Если после «перезапуска» пользователь попробует / game oddmar, он не будет работать - только / game Oddmar. Но почему? Если в приложении я всегда читаю карту из моей переменной (не из файла).