Ответ 1
CacheBuilder.build()
возвращает кеш без загрузки. Только то, что вы хотите. Просто используйте
Cache<String, String> cache = CacheBuilder.newBuilder().build();
В моем приложении java есть кеш, и я хочу поменять текущую реализацию кэша и заменить его кэшем guava.
К сожалению, использование кэша моего приложения, похоже, не соответствует способу работы кэшей guava. Все, что я хочу, это создать пустой кеш, прочитать элемент из кэша с помощью метода "get" и сохранить элемент в кеше с помощью метода "put". Я НЕ хочу, чтобы вызов "get" пытался добавить элемент в кеш.
Кажется, что класс LoadingCache имеет методы get и put, которые мне нужны. Но мне трудно понять, как создать кеш без предоставления функции "load".
Моя первая попытка:
LoadingCache<String, String> CACHE = CacheBuilder.newBuilder().build();
Но это вызывает ошибку компилятора: несовместимые типы; не существует экземпляров (-ов) переменных типа K1, V1, чтобы Cache соответствовал LoadCache
По-видимому, мне нужно передать в CacheLoader, который имеет метод "load".
(я думаю, я мог бы создать CacheLoader, у которого есть метод загрузки, который просто бросает исключение, но это кажется странным и неэффективным. Правильно ли это делать?)
CacheBuilder.build()
возвращает кеш без загрузки. Только то, что вы хотите. Просто используйте
Cache<String, String> cache = CacheBuilder.newBuilder().build();