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

В моем приложении java есть кеш, и я хочу поменять текущую реализацию кэша и заменить его кэшем guava.

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

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

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

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

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

По-видимому, мне нужно передать в CacheLoader, который имеет метод "load".

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

Ответы

Ответ 1

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

Cache<String, String> cache = CacheBuilder.newBuilder().build();