Я внедрил кеш кофеина в моем проекте. В некоторых случаях я хочу удалить несколько указанных ключей c из него вручную, используя entrySet().removeIf()
. Реализация выглядит следующим образом:
Cache someCache = cacheManager.getCache("someCache");
ConcurrentMap<Pair<String, String>, Object> someCacheMap = ((com.github.benmanes.caffeine.cache.Cache) someCache.getNativeCache()).asMap();
someCacheMap.entrySet().removeIf(entry -> entry.getKey().getLeft().equals("someValue"));
Здесь - это вопрос, в котором упоминается проблема с неправильным поведением entrySet().removeIf
при вызове ConcurrentHashMap
. Вот ошибка , исправленная в 9 Java, но я использую 8.
Безопасно ли использовать поток removeIf
в моем случае?