Использование кеша гуавы без функции загрузки

У моего java-приложения есть кеш, и я бы хотел поменять текущую реализацию кеша и заменить его на кеш гуавы.

К сожалению, использование кэша моего приложения не похоже на то, как работает кеш guava. Все, что я хочу - это иметь возможность создавать пустой кеш, читать элемент из кеша методом get и сохранять элемент в кеше методом put. Я не хочу, чтобы вызов get пытался добавить элемент в кеш.

Кажется, что класс LoadingCache имеет методы get и put, которые мне нужны. Но у меня возникают проблемы с выяснением, как создать кеш без предоставления функции "загрузки".

Моя первая попытка была такая:

LoadingCache<String, String> CACHE = CacheBuilder.newBuilder().build();

Но это вызывает ошибку компилятора: несовместимые типы; нет экземпляра (ов) переменной типа (ов) K1,V1 существует, поэтому Cache соответствует LoadingCache

Видимо, я должен передать в CacheLoader, который имеет метод "загрузки".

(Полагаю, я мог бы создать CacheLoader, у которого есть метод load, который просто генерирует исключение, но это кажется странным и неэффективным. Это правильно?)

1 ответ

Решение

CacheBuilder.build() возвращает не загружающийся кеш. Как раз то, что вы хотите. Просто используйте

Cache<String, String> cache = CacheBuilder.newBuilder().build();
Другие вопросы по тегам